ubuntu18.04+python3+pycharm+pcl1.8實作點云的保存和讀取
從開始學習opencv時,就一直用python,現在在學習3D視覺,pointcloud是個難啃的骨頭,pcl庫的一些函式用法大部分都是C++,深度轉點云,點云圖的保存和讀取,大部分教程都是C,python很少,這里我來分享python-pcl的一些函式的引數使用,后續會更新python版本的pcl庫的一些使用,點云濾波器、過濾器、3D測量、3D的物體分割與識別等
1.點云圖的保存:
這里主要講PLY和PCD兩種點云的檔案型別,具體就不再解釋了,目前,點云檔案保存為*.pcd是最為廣泛使用的,可存盤的型別很多,可以直接使用PCL庫的save函式進行保存(之前看過一篇點云保存的文章,主要操作就是把深度圖的引數寫入color_rgb.txt檔案,保存的時候先讀入這個檔案,然后轉換型別、統計源檔案的點數等一些操作,看起來比較麻煩),廢話不多說,直接上代碼:
#顯示點云圖,這里深度圖轉點云的代碼省略,后續會給出,現在的點云顯示是通過讀取txt檔案來生成點云圖,最近在搞一種簡便的方法顯示點云圖,后續會更新相應代碼,這里就不給了,主要講點云圖的保存
def visual_demo():
cloud = pcl.PointCloud_PointXYZRGB()#創建pointcloud的型別,著色點云
points = np.zeros((307200, 4), dtype=np.float32)
pcl.save(cloud, './1.pcd')
#函式引數說明:save(cloud: Any,path: {endswith},format: Any = None,binary: bool = False) -> Any
# cloud:創建的點云物件
# path:點云檔案的保存路徑,其余引數不用管
ok,點云圖的保存就一個save函式搞定,點云檔案保存如下

2.點云圖的讀取
直接上代碼:
def readpcdfile_demo():
# 加載剛剛保存的點云檔案:1.pcd
cloud = pcl.load_XYZRGB('./1.pcd')
visual = pcl.pcl_visualization.CloudViewing()# 創建visual類,創建顯示視窗,名字為:PCD viewer
visual.ShowColorCloud(cloud, b'cloud')#cloud前面一定不要忘了'b',至于為啥這里也不是太懂
flag = True
while flag:
flag != visual.WasStopped()
讀取結果如下:

歐克,點云的保存和讀取更新到這,后面會更新python版本的點云濾波器、過濾器的代碼和解釋,謝謝,有錯誤的地方歡迎評論!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/266672.html
標籤:python
