pcl库中viewer背景色的设置技巧和给点云上色的三种方法

文章介绍了如何使用RGB值设置背景颜色,通过将RGB值除以255来获取0-1之间的浮点数,以适应于代码中的颜色设置。示例代码展示了在PCL点云可视化中如何给点云指定颜色,包括设置单一颜色、基于字段的颜色处理和沿Z方向的渐变色。

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

viewer.setBackgroundColor(0, 0, 0);

其中的三个值分别表示rgb

范围为0-1,自己怎么设置颜色均不是想要的,而自己只会设置上面的颜色,要么全黑,要么全白,或者全红等纯色。

如何达到自己的想要的效果呢?

仔细看代码中的数值和下面rgb图中的颜色值,一下就明白了怎么回事了

viewer.setBackgroundColor(128.0 / 255.0, 138.0 / 255.0, 135.0 / 255.0);

 

运行结果,就是上面的颜色

换成其他颜色,比如类似cc里面的颜色

viewer.setBackgroundColor(8.0 / 255.0, 79.0 / 255.0, 117.0 / 255.0);

 

更多颜色

 

给点云上色代码

//设置点云颜色
 
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ>single_color(cloud,0,255,0); //设置背景色 viewer->setBackgroundColor(0,0,0.7)

 给点云的某个字段进行上色

boost::shared_ptr<pcl::visualization::PCLVisualizer> genericHandler(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud)
{
	boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Cloud"));
	pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ> rgb(cloud, "y");
	viewer->addPointCloud(cloud, rgb, "sample cloud");
	return viewer;
}

 给点云沿着Z方向的变化上色/渐变色

void visualize_pcdOne(pcl::PointCloud<pcl::PointXYZ>::Ptr pcd_src)
{

	//创建初始化目标
	pcl::visualization::PCLVisualizer viewer("3D Viewer");
	// 设置单一颜色
	//pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> color_h(pcd_src, 0, 255, 0);//点云为绿色
	//按照z方向深度进行渲染(带渐变色)
	pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ> color_h(pcd_src, "z");
	// 添加坐标系
	viewer.addCoordinateSystem(0.3);    // 读取的点云单位是什么,这个单位就是什么
	viewer.setBackgroundColor(0.2, 0.2, 0.2);//背景色为深棕色
	viewer.addPointCloud<pcl::PointXYZ>(pcd_src, color_h, "source cloud");
	while (!viewer.wasStopped())
	{
		viewer.spinOnce(100);
		//boost 需要加头文件#include <boost/thread/thread.hpp>
		boost::this_thread::sleep(boost::posix_time::microseconds(100000));
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大胡子大叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值