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

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

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

部分代码如下:

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

转换完成的图像:

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

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

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

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

你可能感兴趣的:(仓库物资识别)