PCL点云可视化相关操作

1.可视化窗口添加、删除、更新点云

addPointCloud
removePointCloud
updatePointCloud

///定义一个显示窗口,窗口的名字为3D reviewer
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));

(1) 函数1: addPointCloud()
向窗口添加点云cloud1,cloud的名字叫“sample cloud”,以后就用‘simple cloud"代替cloud1.

viewer->addPointCloud<pcl::PointXYZ>(cloud1, "sample cloud");

(2) 函数2: removePointCloud()

viewer->removePointCloud("sample cloud");

(3) 函数3: updatePointCloud()
updatePointCloud相当于先remove"sample cloud",再add “cloud2”

viewer->updatePointCloud(cloud2, "sample cloud");

2.几个常用PCL可视化函数

(1) 函数1:设置点云的颜色

///对输入为pcl::PointXYZ类型的点云,着色为红色。其中,source表示真正处理的点云,sources_cloud_color表示处理结果
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> sources_cloud_color(source, 250,0,0);

(2) 函数2:在某个固定视图中显示固定颜色的某点云

//双引号中的sources_cloud_v1,表示该点云的”标签“,v1表是添加到哪个视图窗口(pcl中可设置多窗口模式)
view->addPointCloud(source,sources_cloud_color,"sources_cloud_v1",v1);

(3) 函数3:设置点云属性

///其中PCL_VISUALIZER_POINT_SIZE表示设置点的大小为3,双引号中”sources_cloud_v1“,就是步骤2中所说的标签。
view->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,3,"sources_cloud_v1");
 //主要用来设置标签点云的不透明度,表示对标签名字为"sources_cloud_v1"的标签点云设置不透明度为1,也就是说透明度为0. 默认情况下完全不透明。
view->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_OPACITY,1,"sources_cloud_v1");

(4) 函数4:设置显示窗口的背景颜色

viewer->setBackgroundColor (0, 0, 0.7);

(5) 函数5:添加需要显示的点云法向。

///cloud为原始点云模型,normal为法向信息,10表示需要显示法向的点云间隔,即每10个点显示一次法向,5表示法向长度,名字、标签为“normal
viewer->addPointCloudNormals<pcl::PointXYZ, pcl::Normal> (cloud, normals, 10, 5, "normals");
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PCL(Point Cloud Library)是一个开源的点云处理库,提供了点云数据的各种算法和工具。而MFC(Microsoft Foundation Classes)是一个用于开发Windows应用程序的C++类库。 要实现PCL点云可视化内嵌MFC,首先需要在MFC的应用程序中创建一个显示图像的控件,可以使用MFC中的CWnd派生类或自定义的继承自CWnd的窗口类。 在创建好显示点云的控件后,需要通过PCL库的相关接口将点云数据加载到内存中。可以使用PCL中的PointCloud类来存储点云数据,使用PointCloud类的成员函数来进行点云数据的操作。 接下来,可以在MFC应用程序的消息循环中,利用PCL提供的可视化工具类(如pcl::visualization::PCLVisualizer)来实现点云可视化。可以将点云数据通过vtkSmartPointer<wndObj>将点云数据传递给可视化对象,并利用该可视化对象的成员函数来设置点云的颜色、大小、透明度等属性。 最后,通过在控件的绘制函数中调用可视化对象的成员函数来实现点云的实时更新和渲染。可以将绘制函数与消息循环结合起来,使得点云可以根据用户的操作实时更新显示。 总结起来,实现PCL点云可视化内嵌MFC的步骤包括:创建显示点云的控件,加载点云数据到内存,利用PCL提供的可视化工具类实现点云可视化,以及在控件的绘制函数中更新和渲染点云。这样就能够在MFC应用程序中实现PCL点云可视化了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Cynthia.Chen

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

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

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

打赏作者

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

抵扣说明:

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

余额充值