pcl_viewer类
经常会遇到点云可视化的情况,这里记录一些viewer相关的代码,方便以后直接使用。
pcl源码第五章pcl_visualizer_demo.cpp介绍了各种情况的显示,如显示法线、鼠标键盘响应等。
一般在代码最后都要添加如下的主循环:
while (!viewer.wasStopped ()){viewer.spinOnce ();}
显示点云,设置窗口背景颜色,将不同点云设置为不同的颜色,在第五章range_image_visualization.cpp中也有。
//这是siftdetect.cpp中的可视化部分
//创建对象,命名窗口为PCL Viewer
pcl::visualization::PCLVisualizer viewer("PCL Viewer");
//设置cloud_temp点云的颜色
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> keypoints_color_handler(cloud_temp, 0, 255, 0);
//设置cloud_xyz点云的颜色
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> cloud_color_handler(cloud_xyz, 255, 0, 0);
//设置背景颜色
viewer.setBackgroundColor(0.0, 0.0, 0.0);
//添加点云,第二个参数就是之前设置的点云颜色,第三的参数"cloud"是点云的id
viewer.addPointCloud(cloud_xyz, cloud_color_handler, "cloud");
//添加点云,这里其实就是将关键点显示出来,"keypoints"是其id
viewer.addPointCloud(cloud_temp, keypoints_color_handler, "keypoints");
//设置cloud_temp的渲染属性,第一个参数是属性类型,这里是将点的大小设为7
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 7, "keypoints");
下面这个代码和上面实现的功能是一样的,只是使用了boost指针
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer);
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> cloud_color_handler(cloud, 255, 0, 0);
viewer->addPointCloud(cloud, cloud_color_handler,"all_cloud");
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> harris_color_handler (cloud_harris, 0, 255, 0);
viewer->addPointCloud(cloud_harris,harris_color_handler,"harris");
viewer->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 5, "harris");
cloudviewer类
pcl::visualization::CloudViewer viewer("Cloud Viewer");//创建对象
viewer.showCloud(cloud);//显示
viewer.setBackgroundColor (1.0, 0.5, 1.0);//背景//添加圆球
pcl::PointXYZ o;
o.x = 1.0;
o.y = 0;
o.z = 0;
viewer.addSphere (o, 0.25, "sphere", 0);
一个窗口显示几幅图
boost::shared_ptr<pcl::visualization::PCLVisualizer> for_visualizer_v (new pcl::visualization::PCLVisualizer ("crophull display"));for_visualizer_v->setBackgroundColor(255,255,255);int v1(0);for_visualizer_v->createViewPort (0.0, 0.0, 0.33, 1, v1);//位置for_visualizer_v->setBackgroundColor (0, 255, 255, v1);//第一部分背景for_visualizer_v->addPointCloud (cloud,"cloud",v1);for_visualizer_v->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR,255,0,0,"cloud");//“cloud”的颜色for_visualizer_v->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,3,"cloud");//“cloud”点云点的大小for_visualizer_v->addPolygon<pcl::PointXYZ>(surface_hull,0,.069*255,0.2*255,"backview_hull_polyline1",v1);//添加多边形int v2(0);for_visualizer_v->createViewPort (0.33, 0.0, 0.66, 1, v2); for_visualizer_v->setBackgroundColor (255,0, 255, v2);for_visualizer_v->addPointCloud (surface_hull,"surface_hull",v2);for_visualizer_v->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR,255,0,0,"surface_hull");for_visualizer_v->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,8,"surface_hull");for_visualizer_v->addPolygon<pcl::PointXYZ>(surface_hull,0,.069*255,0.2*255,"backview_hull_polyline",v2);int v3(0);for_visualizer_v->createViewPort (0.66, 0.0, 1, 1, v3);for_visualizer_v->setBackgroundColor (255, 255, 0, v3);for_visualizer_v->addPointCloud (objects,"objects",v3);for_visualizer_v->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR,255,0,0,"objects");for_visualizer_v->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,3,"objects");while (!for_visualizer_v->wasStopped()){for_visualizer_v->spinOnce(1000);}system("pause")
效果:
pcl_viewer类相关推荐
- 自己搜集编写的Delphi 通用函数
{ ********************************************************************** } { Currency Common Functio ...
- 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题
继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...
- MybatisPlus忽略实体类中的非数据库字段、JPA忽略实体类中的非数据库字段、HeHibernate忽略实体类中的非数据库字段
mybatis plus忽略映射字段时可以在实体类属性上使用以下注解: @TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的. @TableField(e ...
- IDEA中根据数据库自动生成实体类,并自定义所生成的实体类中的注解 @Table @Id @...
使用IDEA项目添加Hibernate扩展,生成实体类并配置实体类中的注解 一.使用Hibernate自动生成实体类 1.在项目上右键,选择Add Framework Support找到 Hibern ...
- IDEA自动生成类注解,IDEA作者信息自动生成,IDEA类信息自动生成
在新建类文件的时候自动生成注解,诸如我们常见的那些 作者,创建时间,TODO 等等 将以下格式的代码放在Settings -> File and Code Templates -> Inc ...
- javabean实体类与实体类之间的快速转换
一.Dozer是什么? dozer是一个能把实体和实体之间进行转换的工具.只要建立好映射关系.就像是ORM的数据库和实体映射一样. 使用方法示例如下: // article(PO) -> art ...
- 利用dom4j将实体类转换为对应的xml报文
利用dom4j生成xml报文 目标格式: <?xml version="1.0" encoding="GBK"?><Packet type=& ...
- Idea groovy表生成实体类带注释
Idea groovy表生成实体类带注释 1.点开datasourse,打开idea带的数据库工具,具体添加数据库连接,这里不描述. 这时点击会生成一个poji 这时生成的pojo中是不带中文注释的, ...
- java带参数的方法笔记_具有Java参数的方法的类声明
类声明可以包含在Java中具有参数的方法.演示此过程的程序如下: 示例class Message { public void messagePrint(String msg) { System.out ...
最新文章
- springboot添加多数据源连接池并配置Mybatis
- 技术图文:如何进行代码的重构?以封装 BigOne API 为例
- 1、代理服务器及haproxy基础
- python collections模块(数据结构常用模块)计数器Counter 双向队列deque 默认字典defaultdict 有序字典OrderedDict 可命名元组namedtuple
- linux驱动模块开机自动加载,以及应用程序开机自启动
- c语言怎么让两个函数同时进行_Excel高级筛选怎么用同时满足多个条件进行筛选...
- C# 常用接口学习 IEnumerableT
- java ldap userpassword 解密_Spring Boot中使用LDAP来统一管理用户信息
- 计算机设计大赛国奖作品_4. 界面设计
- 突发!联想被责令立即开展全面整改
- activate激活虚拟环境无效解决办法
- 过度使用微信,正在让人越来越焦虑
- Windows Server 2008 R2的DHCP高可用
- CSDN博客——修改字体、字号与颜色
- 基于冷冻电镜图像的低通滤波(Lowpass Filter)算法
- C语言入门递归算法——汉诺塔(简单易懂,最后还有汉诺塔游戏)
- VScode 控制台/终端乱码
- 从内地或海外前往香港的步骤攻略(2023.2.更新)
- 关于计算机专业的调整与优化,Win10这样做优化让你的电脑更流畅
- squid配置透明代理并支持Https及http、https拦截