PCL学习:深度图像-RangelmagePlanar类介绍

class pcl : : RangelmagePlanar
RangeImagePlanar 类来源于最原始的深度图像,但又区别于原始的深度图像,因为该类不使用球形投影方式,而是通过一个平面投影方式进行投影〈照相机一般采用这种投影方式) 。 因此,对于已有的利用深度传感器获取深度图像来说较为实用 ,例如现有的立体照相机或者 ToF 照相机本身提供深度图像,这样就不需要将原始的深度图像转换为点云并再转换为球形投影的深度图像。该类的继承关系如图所示:

PCL_EXPORTS void  setDisparityImage (const float *disparity_image, int di_width, int di_height, float focal_length, float base_line, float desired_angular_resolution=-1)
  从给定的视差图像中创建图像,其中, disparity_image 是输入的视差图像, di_width 是视差图像的宽度, di_height 是视差图像的高度, focal_length 是产生视差图像的照相机的焦距, base_line 是用于产生视差图像的立体相对的基线长度, desired_angular_resolu tion 是预设的角分辨率,是每个像素对应的弧度,该值不能大于点云
密度,如果用户设置该值,系统会忽略一些像素以使角分辨率尽可能地接近用户设定值的同时又不超过该值。
 
PCL_EXPORTS void  setDepthImage (const float *depth_image, int di_width, int di_height, float di_center_x, float di_center_y, float di_focal_length_x, float di_focal_length_y, float desired_angular_resolution=-1)
  从已存在的深度影像中创建图像,其中, depth_image 是输入的浮点型的深度图像, di_width 是深度图像的宽度, di_height 是深度图像的高度, di_center_x 是照相机投影中心的 x 坐标; di_center_y 是照相机投影中心的 y 坐标, di_focal_length_x 是照相机水平方向上的焦距, di_focal_length_y 是相机垂直方向上的焦距,desired_angular_ resolution 是预设的角分辨率,是每个像素对应的弧度,该值不能大于点云密度,如果用户设置该值,系统会忽略一些像素以使角分辨率尽可能地接近用户设定值的同时又不超过该值。
 
PCL_EXPORTS void  setDepthImage (const unsigned short *depth_image, int di_width, int di_height, float di_center_x, float di_center_y, float di_focal_length_x, float di_focal_length_y, float desired_angular_resolution=-1)
  同上,但
 
template<typename PointCloudType >
void  createFromPointCloudWithFixedSize (const PointCloudType &point_cloud, int di_width, int di_height, float di_center_x, float di_center_y, float di_focal_length_x, float di_focal_length_y, const Eigen::Affine3f &sensor_pose, CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f)
  从已存在的点云中创建图像,其中, point_cloud 为指向创建深度图像所需点云的对象引用, di_width 是视差图像的宽度, di_height 是视差图像的高度, di_center_ x是照相机投影中心的 x 坐标, di _ center_y 是照相机投影中心的 y 坐标 , di_focal_length_x 是照相机水平方向上的焦距, di_ fo cal_ length_ y 是照相机垂直方向上的焦距, sensor_pose 为模拟深度照相机的位姿, coordinate_frame 为点云所使用的坐标系统, noise_level 为传感器的噪声水平,用于 z缓冲区求取深度时,如果噪声越大,查询点周围的点深度就会影响查询点的深度,如果无噪声,则直接取查询点 z 缓冲区中最小的距离为深度, min_range 为可见点的最小深度,小于该距离的点视为盲区,即不可见点。
 
void  calculate3DPoint (float image_x, float image_y, float range, Eigen::Vector3f &point) const override
  根据给定的图像点和深度创建 3D 点,其中, image_x 和 image_y 分别为图像 xy方向上的点, range 为深度, point 为生成的 3D 点。

猜你喜欢

转载自blog.csdn.net/zfjBIT/article/details/92811710
今日推荐