ndarray格式的點雲數組轉變為open3d.open3d.geometry.PointCloud


原文鏈接:https://blog.csdn.net/baidu_34172099/article/details/106756630

作為點雲可視化利器,居然百度了一圈沒有誰寫關於open3D與numpy互轉的介紹,看來這個畢竟還是小眾。翻了一遍官方介紹,還算簡單,這里介紹一下如何轉換。

NumPy to open3d.PointCloud
numpy轉open3D需要借助Vector3dVector函數,這樣可以直接賦值與open3d.PointCloud.points,具體操作如下,假設xyz、nxnynz、rgb分別是一個n*3numpy數組,則對於點數,法向量和顏色的轉換都可以借助Vector3dVector函數,具體操作如下:

import numpy as np
import open3D as o3d
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(xyz)
pcd.normals = o3d.utility.Vector3dVector(nxnynz)
pcd.colors = o3d.utility.Vector3dVector(rgb)

 



open3d.PointCloud to NumPy
上面可以看出 open3D是對點做的而變化,所以反過來也是:

import numpy as np
import open3d as o3d
# Load saved point cloud and visualize it
pcd_load = o3d.io.read_point_cloud("../../TestData/sync.ply")

# convert Open3D.o3d.geometry.PointCloud to numpy array
xyz_load = np.asarray(pcd_load.points)
o3d.visualization.draw_geometries([pcd_load])

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM