PCL::深度图像

在PCL中深度图像与点云最重要的区别在于,其近邻的检索方式不同,并且可以互相转化。点云数据需要通过k-d tree等索引来对数据进行检索,而深度图和图像类似,可以通过上下左右等近邻来直接进行索引。

深度图像(Depth Image)也被称为距离 影像(Range Images),是指将图像采集器到场景中各点的距离(深度)指作为像素值的图像,它直接反映了景物可见表面的几何形状,利用它可以很方便地解决3d目标描述中的许多问题。深度图像经过坐标转换可以计算为点云数据,有责及必要信息的点云数据也可以反算为深度图像数据。

深度图像时物体的三维表示形式,一般通过立体相机或者ToF相机获取。如果知道相机的内标定参数,就可以将深度图像转化为点云。

angularResolution=1,意味着由临近的像素点所对应的每个光束之间相差1度。maxAngleWidth=360和maxAngleHeight=180意味着我们进行模拟的距离传感器对周围环境拥有一个完整的360度视角。

sensorPose定义了模拟深度图像获取传感器的6自由度位置,其原始值为横滚角roll,俯仰角pitch,偏航角yaw都为0。

六轴姿态及roll、pitch和yaw_pitch roll yaw_loongembedded的博客-CSDN博客图来自这里。

coordinate_frame=CAMERA_FRAME说明系统的x轴是向右的,y是向下的,z轴是向前的。

提取边界信息时很重要的一点是区分深度图像中当前视点不可见点集合和应该可见但处于传感器获取距离范围外的点集,后者可以标记为典型边界,然而当前视点不可见点则不能成为边界,如果后者的测量值存在,则提供那些超出传感器距离获取范围外的数据对于边界提取是非常有用的.

完成从点云到深度图像的生成后,我们利用该深度图像作为输入,来使用曲面重建算法的简单三角化类生成曲面模型。

pcl::MedianFilter是一个基于中值滤波的滤波器,它可以应用于点云数据、深度图像等三维数据。中值滤波是一种常见的非线性滤波方法,它的原理是用一个像素点周围的像素值的中位数来代替该像素点的值,从而达到去除噪声、保留边缘等效果。在点云数据中,中值滤波可以去除离群点,平滑点云数据。 pcl::MedianFilter的使用非常简单,只需要创建一个pcl::MedianFilter对象,然后调用其apply()方法即可对点云数据进行中值滤波。示例代码如下: ```cpp pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); // 加载点云数据 pcl::io::loadPCDFile<pcl::PointXYZ>("cloud.pcd", *cloud); // 创建MedianFilter对象 pcl::MedianFilter<pcl::PointXYZ> median_filter; // 设置半径为5个像素 median_filter.setWindowSize(5); // 应用滤波器 median_filter.setInputCloud(cloud); pcl::PointCloud<pcl::PointXYZ>::Ptr filtered_cloud(new pcl::PointCloud<pcl::PointXYZ>); median_filter.filter(*filtered_cloud); // 保存滤波后的点云数据 pcl::io::savePCDFile<pcl::PointXYZ>("filtered_cloud.pcd", *filtered_cloud); ``` 在上述示例代码中,我们首先加载了一个点云数据,然后创建了一个pcl::MedianFilter对象,设置了滤波器的半径为5个像素,最后调用了apply()方法对点云数据进行中值滤波。滤波后的点云数据保存在了filtered_cloud中,可以使用pcl::io::savePCDFile()方法将其保存为PCD文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值