linux pcl 转图片,PCL编程->点云转深度图显示

点云转深度图显示函数:

void depthvisual()

{

// Object for storing the point cloud.

pcl::PointCloud<:pointxyz>::Ptr cloud(new pcl::PointCloud<:pointxyz>);

// Object for storing the normals.

pcl::PointCloud<:normal>::Ptr normals(new pcl::PointCloud<:normal>);

// Read a PCD file from disk.

if (pcl::io::loadPCDFile<:pointxyz>("vincent.pcd", *cloud) != 0)

{

return ;

}

Eigen::Matrix4f T;

T << 1, 0, 0, 0,

0, 1, 0, 0,

0, 0, 1, 500,

0, 0, 0, 1;

Eigen::Matrix4f T1;

T1 << 0, -1, 0, 0,

1, 0, 0, 0,

0, 0, 1, 0,

0, 0, 0, 1;

Eigen::Affine3f Traw(T*T1);

// Parameters needed by the planar range image object:

// Image size. Both Kinect and Xtion work at 640x480.

int imageSizeX = 1500;

int imageSizeY = 1500;

// Center of projection. here, we choose the middle of the image.

float centerX = imageSizeX / 2.0f;

float centerY = imageSizeY / 2.0f;

// Focal length. The value seen here has been taken from the original depth images.

// It is safe to use the same value vertically and horizontally.

float focalLengthX = 800.0f, focalLengthY = focalLengthX;

// Sensor pose. Thankfully, the cloud includes the data.

Eigen::Affine3f sensorPose = Traw;// Eigen::Affine3f(Eigen::Translation3f(0, 0, 0));

// Noise level. If greater than 0, values of neighboring points will be averaged.

// This would set the search radius (e.g., 0.03 == 3cm).

float noiseLevel = 0.0f;

// Minimum range. If set, any point closer to the sensor than this will be ignored.

float minimumRange = 0.0f;

// Planar range image object.

pcl::RangeImagePlanar rangeImagePlanar;

rangeImagePlanar.createFromPointCloudWithFixedSize(*cloud, imageSizeX, imageSizeY,

centerX, centerY, focalLengthX, focalLengthX,

sensorPose, pcl::RangeImage::LASER_FRAME,

noiseLevel, minimumRange);

// Visualize the image.

pcl::visualization::RangeImageVisualizer viewer("Planar range image");

viewer.showRangeImage(rangeImagePlanar);

while (!viewer.wasStopped())

{

viewer.spinOnce();

// Sleep 100ms to go easy on the CPU.

pcl_sleep(0.1);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值