我有许多由velodyne传感器收集的3D点云。例如(x,y,z)米。
我想将3D点云转换为范围图像。
首先,我已经从Catesian转变为球坐标。
r = sqrt(x*x + y*y + z*z)
azimuth angle = atan2(x, z)
elevation angle = asin(y/r)
现在。如何在matlab中使用这些转换将3D点转换为Range图像?
整点大约是180,000,我想要870 * 64范围的图像。
方位角范围(-180~180),仰角范围(-15~15)
答案 0 :(得分:2)
将方位角和仰角分别划分为M和N范围。现在你有M * N“bins”(M = 870,N = 64)。
然后(每个bin)累积投射到该bin中的点的直方图。
最后,从每个bin中为最终范围图像选择一个代表值。您可以选择平均值(嘈杂,快速)或适合某些分布,然后使用它来选择值(更精确,更慢)。
答案 1 :(得分:-1)
Matlab File Exchange提供的pointcloud2image
代码可以帮助您直接将点云(x,y,z
格式)转换为2D光栅图像。