码迷,mamicode.com
首页 > 其他好文 > 详细

深度图向点云图的转换

时间:2018-03-24 22:30:46      阅读:4841      评论:0      收藏:0      [点我收藏+]

标签:bubuko   分享图片   tor   坐标转换   factor   获取   存在   style   技术   

深度图转点云的计算方法不复杂,是根据内外参矩阵变换公式得到的。

一个相机的三维点[x,y,z]和它在图像中的像素坐标[u,v,d],存在着一个固定的对应关系(对于小孔成像的相机原理的相机)

技术分享图片

上述的公式是从世界坐标得到图像中像素坐标,同理也可从从图像的像素坐标转换到世界坐标下。

技术分享图片

根据这个公式可以对点云进行构建。

技术分享图片

如果相机发生了位移和旋转,那么只需要对这些点进行相应的处理即可。(一般相机在0时刻是与世界坐标重合的)

 

对于深度图中的点,转换成三维坐标在程序中一般是如下这样的:

for (int m = 0; m < depth.rows; m++)
        for (int n=0; n < depth.cols; n++)
        {
            // 获取深度图中(m,n)处的值
            ushort d = depth.ptr<ushort>(m)[n];
            // d 可能没有值,若如此,跳过此点
            if (d == 0)
                continue;
            // d 存在值,则向点云增加一个点
            PointT p;

            // 计算这个点的空间坐标
            p.z = double(d) / camera_factor;
            p.x = (n - camera_cx) * p.z / camera_fx;
            p.y = (m - camera_cy) * p.z / camera_fy;
         }
点云也可以加入颜色,若有RGB图也是可以的。(这里要注意深度没有值的时候,在应用的时候的具体情况,是否需要在这种情况下具体处理)

 

深度图向点云图的转换

标签:bubuko   分享图片   tor   坐标转换   factor   获取   存在   style   技术   

原文地址:https://www.cnblogs.com/ThiefB/p/8641450.html

(2)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!