auto cloud_ptr = std::make_shared(); //建立乙個存放點雲的指標
open3d::visualization::visualizer visualizer; //建立乙個視覺化物件
visualizer.createvisualizerwindow("open3d",640,480,50,50,true); //建立乙個視窗
visualizer.getrenderoption().point_size_ = 0.1;//設定點雲點的大小
eigen::vector3d backcolo(0,0,0);
visualizer.getrenderoption().background_color_ = backcolo;//設定視窗背景色
visualizer.getrenderoption().show_coordinate_frame_ = true;
int flag = 0;//做邏輯判斷用
float* p3d = (float)malloc(m_ip3dlen); //malloc 乙個大的記憶體 存放實時更新的點雲,格式為下xyzxyzxyz...
while(true)
for (int a = 0; a < depth_wide * depth_heig; ++a) //把顏色資料放進去
cloud_ptr->normalizenormals();
auto mcloud_ptr = cloud_ptr->voxeldownsample(0.05);//**素取樣
mcloud_ptr->estimatenormals(open3d::geometry::kdtreesearchparamhybrid(0.01, 50));//設定法線,好像沒什麼效果
open3d::geometry::axisalignedboundingbox a = mcloud_ptr->getaxisalignedboundingbox();//獲取點雲的包圍框
std::shared_ptrmbox(new open3d::geometry::axisalignedboundingbox(a));
mbox->color_ = eigen::vector3d(1, 0, 0);//設定包圍框顏色
if (!flag)
visualizer.updategeometry(cloud_ptr);//更新顯示
visualizer.addgeometry(mbox);//更新包圍框
visualizer.pollevents(); //下頭這兩個不清楚啥用
visualizer.updaterender();
cloud_ptr->points_.clear();
cloud_ptr->colors_.clear();
}
大致**如上,修改修改就能用 Open3D 獲取mesh屬性
首先看一下在cloudcompare軟體中的實現 mesh flag vertices 檢查網格的基本特性,為每個網格樣本做標誌 0 normal,1 border,2 non manifold 三角網格有幾個可以用open3d測試的屬性。乙個重要的屬性是流形性質 manifold property...
Open3D 去除mesh中的噪點
各種重建演算法的結果 比如rgbd integration 並不是只有乙個三角網格而是有多個網格。一些較小的部分 相比如主物體較小 是由於雜訊引起的,我們會想要移除它。open3d實現了乙個連通分量演算法cluster connected s,將每個三角形分配給乙個連線的三角集群,從集群中返回每乙個...
Open3D視覺化點雲的問題記錄
因為科研工作,需要對點雲資料進行視覺化 包括input ground truth segmentation和prediction segmentation三項 由於之前嘗試過使用open3d進行點雲視覺化處理,所以今天又拿來操作了一番,發現了乙個問題,在這裡記錄一下。在我的mac catalina ...