我正在处理通过立体声获得的视差图(1024 x 768),我可以使用XYZRGB pcl :: Points获得点云。然而,并非来自视差图的所有像素都是有效深度,因此永远不会有1024x768 = 786432 XYZRGB点。幸运的是,我能够保存无组织的点云(即高度= 1)。不幸的是,一些正常的估计方法等是针对有组织的pointclouds而定制的。如何从中创建有组织的pointcloud?
答案 0 :(得分:1)
我认为这是不可能的。
首先,unorganized point cloud (PC)
只是按文件写入的随机顺序列表
另一方面,organized PC
携带通过深度相机和一些其他信息获得的原始点的信息。这些信息存储在let中称之为网格。
一旦你破坏了这个网格,省略了一些点,没有算法可以把它重新组合起来,原来是
您可以使用提供PCL
的其他方法,这些方法不会将OPC作为参数。结果将与使用有组织的点云稍微慢一些(取决于输入云的大小)相同
答案 1 :(得分:0)
我假设您确实拥有将图像点及其深度转换为3D点所需的校准参数,对吧? 在这种情况下,您只需创建一个2D点云,并对视差图的每个像素执行以下操作:
If the point is valid:
set the corresponding point in the point cloud to the 3D point
else:
set the corresponding point in the cloud to NaN (i.e. a 3D point with NaN as coordinates)