PCL入门系列 —— 加载ply格式mesh模型、点云数据并作可视化展示

  • 前言
  • 程序说明
  • 输出结果
  • 代码示例
  • 总结

前言

随着工业自动化、智能化的不断推进,机器视觉(2D/3D)在工业领域的应用和重要程度也同步激增(识别、定位、抓取、测量,缺陷检测等),而针对不同作业场景进行解决方案设计时,通常会借助PCL、OpenCV、Eigen等简单方便的开源算法库进行方案的快速验证和迭代以满足作业场景下的目标需求。

为了让对工业机器视觉方向感兴趣的同学能够少走一些弯路,故推出了此一系列简易入门教程示例,让初次使用者能够最简单直观地感受到当前所用算法模块的执行效果。

后续会逐步扩增与工业机器视觉相关的一些其它内容,如:

项目案例剖析场景数据分析基础算法模块相机评测 等;

如有兴趣可加入群聊(若入群二维码被屏蔽,则可以通过Q群(1032861997)或评论、私信博主“群聊”,邀请入群),与同道同学及圈内同行一起交流讨论。


程序说明

加载ply格式数据并作可视化展示(点云、mesh模型);

输出结果

代码示例

/** @File: load_ply.cpp* @Brief: pcl course* @Description: 展示ply格式数据的加载和可视化效果* @Version: 0.0.1* @Author: MuYv*/
#include <iostream>
#include <string>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#include <pcl/io/ply_io.h>
#include <pcl/visualization/pcl_visualizer.h>int main(int argc, char** argv){if(argc != 2){std::cout<<"Usage: exec cloud_file_path"<<std::endl;return -1;}const std::string kPlyFilePath = argv[1];     // ../clouds/room/room_scannet_mesh.plypcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud_src(new pcl::PointCloud<pcl::PointXYZRGB>());pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_tmp(new pcl::PointCloud<pcl::PointXYZ>());// 将ply格式数据加载为点云// 成功返回0,失败返回-1if(-1 == pcl::io::loadPLYFile(kPlyFilePath,*cloud_src)){std::cout<<"load ply file failed. please check it."<<std::endl;return -2;}// 将ply格式数据加载为PolygonMesh对象pcl::PolygonMesh poly_mesh;// 成功返回0,失败返回-1if(-1 == pcl::io::loadPLYFile(kPlyFilePath, poly_mesh)){std::cout<<"load ply file failed. please check it."<<std::endl;return -2;}// 创建可视化对象pcl::visualization::PCLVisualizer viewer("viewer");// 将当前窗口,拆分成横向的2个可视化窗口,以viewport区分(v1/v2)int v1; int v2;//窗口参数分别对应 x_min, y_min, x_max, y_max, viewportviewer.createViewPort(0.0, 0.0, 0.5, 1.0, v1);  viewer.createViewPort(0.5, 0.0, 1.0, 1.0, v2);// 添加2d文字标签viewer.addText("v1", 10,10, 20, 1,0,0, "viewport_v1", v1);viewer.addText("v2", 10,10, 20, 0,1,0, "viewport_v2", v2);// 添加坐标系viewer.addCoordinateSystem(0.5);    // 单位:m// 设置可视化窗口背景色viewer.setBackgroundColor(0.2,0.2,0.2);     // r,g,b  0~1之间// 向v1窗口中添加点云viewer.addPointCloud(cloud_src,"cloud_src",v1);// 向v2窗口中添加PolygonMesh对象viewer.addPolygonMesh(poly_mesh, "mesh_src",v2);// // 设置可视化窗口内的所有mesh为线框模式,部分情况下,便于可视化debug// viewer.setRepresentationToWireframeForAllActors();// 关闭窗口则退出while(!viewer.wasStopped()){viewer.spinOnce(100);boost::this_thread::sleep(boost::posix_time::microseconds(100000));}return 0;
}

总结

ply格式也常用于点云数据的存储,自动化流程加载中,要主要传入数据的具体数据内容;
在定位抓取项目中,所提供的刚体工件模型,可能是ply/obj/stl格式的mesh模型文件;


注:部分测试所用点云数据来源于网络,如有侵权,请联系博主删除,谢谢。

PCL入门系列 —— 加载ply格式mesh模型、点云数据并作可视化展示相关推荐

  1. PCL入门系列 —— NormalEstimation、NormalEstimationOMP 基于邻域的点云法线估计

    PCL入门系列 -- NormalEstimation.NormalEstimationOMP 基于邻域的点云法线估计 前言 程序说明 输出结果 代码示例 总结 前言 随着工业自动化.智能化的不断推进 ...

  2. Html监听Fbx文件加载,FBX格式mesh解析与加载(一)

    FBX格式mesh解析与加载(一) FBX格式mesh解析与加载(一) ** 理解FBX格式中Mesh数据结构** fbx文件是现在许多建模动画软件和游戏引擎之间共用的模型文件格式.fbx文件分为两种 ...

  3. 通过超图在网页上加载obj格式3D模型

    先看此文: https://blog.csdn.net/bcbobo21cn/article/details/109140958 在桌面版加载一个obj模型出来: 按目前的理解,只要在桌面版加载了模型 ...

  4. python的pth打开方式_pytorch 加载(.pth)格式的模型实例

    有一些非常流行的网络如 resnet.squeezenet.densenet等在pytorch里面都有,包括网络结构和训练好的模型. 按官网加载预训练好的模型: import torchvision. ...

  5. 浅谈性能优化之图片压缩、加载和格式选择

    原文链接:浅谈性能优化之图片压缩.加载和格式选择 在认识图片优化前,我们先了解下 [二进制位数]与[色彩呈现]的关系. 二进制位数与色彩 在计算机中,一般用二进制数来表示像素.在不同的图片格式中,像素 ...

  6. cesium加载并聚焦glb模型

    文章目录 1.实现效果 2.实现方法 2.1实现思路 2.2具体代码 Cesium实战系列文章总目录: 传送门 1.实现效果 2.实现方法 2.1实现思路 (1)参考官方加载模型的沙盒示例:传送门 ( ...

  7. Three.js加载.stl格式模型

    .stl格式模型加载 本文是Three.js电子书的14.2节 基本所有的三维软件都支持导出.stl格式的三维模型文件,.stl格式的三维模型不包含材质Material信息,只包含几何体顶点数据的信息 ...

  8. three.js加载PDB格式模型(vue中使用three.js55)

    加载PDB格式模型 1.demo效果 2.实现要点 2.1 PDB模型放置路径 2.2 加载PDB模型 2.3 处理分子顶点 2.4 处理分子连线 3.demo代码 1.demo效果 如上图,该dem ...

  9. Three.js - 加载 TGA 格式的纹理

    1.TGA格式 TGA(Targa)格式是计算机上应用最广泛的图象格式. 在兼顾了BMP的图象质量的同时又兼顾了JPEG的体积优势. 并且还有自身的特点:通道效果.方向性. 在CG领域常作为影视动画的 ...

最新文章

  1. 【零基础学习iOS开发】【02-C语言】08-基本运算
  2. vs 输入代码时出现火花_在Visual Basic的立即窗口内输入以下语句 X=65
  3. 序列化和反序列化--转
  4. Android --- no module 问题
  5. JavaWeb-综合案例(用户信息)-学习笔记02【登录功能】
  6. Python之io概念
  7. 工作290:重置新增的mode
  8. sqlite3_exec
  9. 第14次全天课笔记 20181028 集合、时间、类
  10. 语音支持英语_语音识别英语_英语语音评分 - 云+社区 - 腾讯云
  11. 微信机器人,微信聊天机器人搭建教程附源代码
  12. MongoDB UTC时间问题
  13. Ubuntu 安装Chromium浏览器
  14. 【UVA1723】Intervals
  15. 学校的友宝自动售货机出故障 不知什么系统呵
  16. 前后端分离时ajax发送请求时后端能接送,但是前端的response为空时
  17. 答读者:数学不好,能学好算法吗?
  18. 七校联合NewStarCTF 公开赛赛道WEEK2 web wp
  19. P1772 [ZJOI2006]物流运输(线性dp+最短路径)
  20. 飞协博携手顺丰速运推出综合物流解决方案

热门文章

  1. 【​观察】从铝制车轮走向世界背后 看中信戴卡的“智造”力量
  2. 7天零基础能考证HCIA吗?华为认证系统学习路线分享
  3. Hive:split函数
  4. (小记)matlab画二维图
  5. 解决:旧电脑装Ubuntu系统
  6. 面试时最经常被问到的问题(Frenquently asked interview questions)(II)
  7. kali安装gaps|Linux安装gaps
  8. 《北大经典讲座》——谈读书
  9. 关于AUTO CAD2020安装失败的问题解决
  10. Walden单词中频率统计