【仓库物资识别】四、将三维点云转换成二维图像(修正后)

本文介绍如何使用pcl库读取点云文件,并通过opencv将三维点云转换为二维灰度图像,以直观展示点云数据的深度信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇的三维转换成二维图像应该说是三维点云投影到二维平面上,点云投影并不能达到项目要求,我们需要转换完成的二维图像可以看到每个点的深度,即用灰度图颜色的深浅来表是原点云数据的深度程度。

利用pcl库读取pcd点云文件,并结合opencv,将在三维中表示深度的z经过一定的变换得到图像中每个像素点的灰度值。

部分代码如下:

for (int i = 0; i < row; i++)
{
	for (int j = 0; j < col; j++)
	{
		Image.at<cv::Vec3b>(i, j)[0] = (cloud->points[k].z / 12.13) * 255;
		Image.at<cv::Vec3b>(i, j)[1] = (cloud->points[k].z / 12.13) * 255;
		Image.at<cv::Vec3b>(i, j)[2] = (cloud->points[k].z / 12.13) * 255;
		k++;		
		cout << k << endl;
	}	
}

转换完成的图像:

 由图可以清楚的看清车头、车尾以及线缆的大体位置,与三维点云图可以对比一下:

得到二维图像,相比较处理三维点云,更加容易获取每个线缆的位置和尺寸。

虽然这些都是比较简单的处理操作,但是完成任务还是非常自豪的,学习带给我的满足感油然而生,继续加油!

评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值