基本資料
安裝使用3.8.5,核心為C語言,使用介面為Python(連結)。
讀取PLY檔案
point_cloud = o3d.geometry.PointCloud()
point_cloud.points = o3d.utility.Vector3dVector(points)
point_cloud.points = o3d.utility.Vector3dVector(points)
points = o3d.utility.Vector3dVector(cuboid_points) << 會出現畫面
基礎操作:Point downsample
pcd.voxel_down_sample(voxel_size=0.05)
基礎操作:Vertex normal estimation
這和按下N的效果差不多,按+和-可以改變預測的長度。
downpcd.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1, max_nn=30))
o3d.visualization.draw_geometries([downpcd],point_show_normal=True)
o3d.visualization.draw_geometries([downpcd],point_show_normal=True)
基礎操作:選取區域進行切割處理
範例 boxcut boxcut2
vol = o3d.visualization.read_selection_polygon_volume("cropped.json")chair = vol.crop_point_cloud(pcd)
基礎操作:Point 加入顏色
chair.paint_uniform_color([1, 0.706, 0])
基礎操作:計算Points彼此距離
compute the distance from a source point cloud to a target point cloud. I.e., it computes for each point in the source point cloud the distance to the closest point in the target point cloud.
dists = pcd.compute_point_cloud_distance(chair)
dists = np.asarray(dists)
ind = np.where(dists > 0.01)[0] << 這個數字決定要切割出的深度
pcd_without_chair = pcd.select_by_index(ind)
dists = np.asarray(dists)
ind = np.where(dists > 0.01)[0] << 這個數字決定要切割出的深度
pcd_without_chair = pcd.select_by_index(ind)
基礎操作:尋找頂點區域
smallest convex set that contains all pointsdists = pcd.compute_point_cloud_distance(chair)
dists = np.asarray(dists)
ind = np.where(dists > 0.01)[0] << 這個數字決定要切割出的深度
pcd_without_chair = pcd.select_by_index(ind)
ind = np.where(dists > 0.01)[0] << 這個數字決定要切割出的深度
pcd_without_chair = pcd.select_by_index(ind)
進階功能:移除雜點
範例(連結) cleannoise
計算點和大家的距離,移除最不相關的項目,畫面會更乾淨。可以移除毛點,或合併後減少數量。目前是要加入很多參數,這些數字應該是要動態決定。
進階功能:ICP
範例 non_blocking_visualization
會自動選擇不同方向和大小進行組合
進階功能:Open3D-ML
Open3D-ML is an extension of Open3D for 3D machine learning tasks.
呈現基本:
陽春的顯示界面,滑鼠讓點旋轉放大縮小,按住ctrl移動滑鼠可以移動物體位置,按住shift移動滑鼠會呈現旋轉的感覺。
o3d.visualization.draw_geometries([point_cloud, oriented_bounding_box])呈現進階:Non-blocking visualization
範例 non_blocking_visualization
ICP過程變成動態顯示(移除pipeline才能編譯),物體慢慢靠近。
呈現進階:按鈕等
Open3D似乎不喜歡被融入其專案視窗,而最新版本0.10開始有自己的UI界面。
沒有留言:
張貼留言