资源简介
利用PCL库,通过滤波,分割,求长宽高,计算物体的体积,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。
代码片段和文件信息
#include
#include
#include //OpenNI采集头文件
#include
#include .
#include
#include
#include //直通滤波器头文件
#include //体素滤波器头文件
#include //统计滤波头文件
#include //索引提取滤波器头文件
#include //映射相关头文件
#include //基于采样一致性分割的类的头文件
#include //采样一致性模型相关类头文件
#include //随机参数估计方法头文件
#include //模型定义头文件
#include //提取凸(凹)多边形的头文件.
#include
#include “opencv2/highgui/highgui.hpp“
#include “opencv2/imgproc/imgproc.hpp“
using namespace std;
using namespace cv;
class VolumDetectViewer
{
public:
boost::mutex cloud_mutex;
pcl::visualization::PCLVisualizer viewer;
// 直通滤波器对象
pcl::PassThrough XpassFilter;
pcl::PassThrough YpassFilter;
// 下采样 VoxelGrid 滤波对象
pcl::VoxelGrid VoxlFilter;
// 统计滤波器
pcl::StatisticalOutlierRemoval statisFilter;
// 分割对象
pcl::SACSegmentation segPlane;
// 提取索引滤波器
pcl::ExtractIndices extractPlane;
// 点云投影滤波对象
pcl::ProjectInliers projec;
VolumDetectViewer():viewer(“PCLVIEW“)
{
// 1. 初始化 new viewer
//pcl::visualization::PCLVisualizer viewer(“PCLVIEW“);
viewer.setBackgroundColor(0 0 0);
viewer.addCoordinateSystem(0.6);
viewer.initCameraParameters();
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE 1 “cloud“);
//viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_OPACITY 0.15 “cloud“);
// 2. 直通滤波设置
// 滤波字段设为x轴方向.
XpassFilter.setFilterFieldName(“x“);
// 设定可接受范围,将不在范围内的点过滤掉或者保留(由setFilterLimitsNegative决定).
XpassFilter.setFilterLimits(-0.25 0.05); // TODO: X方向裁剪阈值需要调试 实际是0.44m.
// 滤波字段设为y轴方向.
YpassFilter.setFilterFieldName(“y“);
// 设定可接受范围,将不在范围内的点过滤掉或者保留(由setFilterLimitsNegative决定).
YpassFilter.setFilterLimits(-0.25 0.18); // TODO: Y方向裁剪阈值需要调试 实际是0.69m.
// 3. 体素滤波设置
// 设置体素滤波时创建的体素体积为0.5*0.5*0.5cm的立方体
VoxlFilter.setLeafSize(0.005f 0.005f 0.005f);
// 4. 统计滤波初始设置
statisFilter.setMeanK(50); // 对每个点分析的临近点个数设为50
statisFilter.setStddevMulThresh(1.0); // 将标准差倍数设为1,意味着一个点的距离超出平均距离1个标准差以上,就会被标记为离群点,并被移除。
// 5. 设置分割对象
// 可选:设置模型系数需要优化
segPlane.setOptimizeCoefficients(true);
// 必选:设置分割的模型类型、所用的随机参数估计方法、距离阈值、迭代次数上限
segPlane.setModelType(pcl::SACMODEL_PLANE);
segPlane.setMethodType(pcl::SAC_RANSAC);
segPlane.setDistanceThreshold(0.01); // TODO: 距离阈值需要调试
segPlane.setMaxIterations(1000);
// 6. 设置投影模型为SACMO
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-05-06 08:37 imgRecord\
文件 5054181 2018-06-11 20:28 imgRecord\GIF.gif
文件 330706 2018-06-11 20:28 imgRecord\originCloud.png
文件 239551 2018-06-11 20:28 imgRecord\passThrough.png
文件 160249 2018-06-11 20:28 imgRecord\PlaneSeg.png
文件 145220 2018-06-11 20:28 imgRecord\statisFiltered.png
文件 135432 2018-06-11 20:28 imgRecord\voxelFiltered.png
目录 0 2020-05-06 08:04 source\
文件 411 2020-05-06 08:04 source\CMakeLists.txt
文件 12822 2020-05-06 08:01 source\volDetectVisualizer.cpp
相关资源
- 戴森-施温格方程在有限球体积中的手
- 超级场景清理器(SPCleaner)v1.0免费版
- httpclient4.3工具类
- windows文件夹按体积大小排序软件
- 直齿圆柱齿轮传动的优化设计
- 大体积混凝土桥梁承台温度及应力场
- 筏板基础大体积混凝土温度场实测与
- SfM稀疏三维点云重建--完整工程文件
- 全面的点云库PCL学习教程
- CPCL查看器.rar
- 2 + 1味QCD中物理点附近大体积晶格上的
- Linux ntpclient代码
- 点云库PCL学习教程 完整版
- 白垩系砂岩含水率对体积比热影响试
- 中英文PCL5语言参考手册_11086676.zip
- stm32f4+w5500+tcpclient/server源码
- PC-lint 9 + 中文手册
- FTPclinet客户端
- PCL点云库SACSegmentation用法demo
- 小兔子pcd点云数据pcl官方案例1)
- PCL5编程指南中文版
- osg显示点云
- pcl5语言详细介绍
- httpclient-4.5.3 api 中文版
- stm32 lwip DNS DHCP ucosIII TCP Client 原创程
- HttpClient异步请求
- pcl点云模型
- HanV1.0.rar
-
OPCli
nk8 -
Opcli
nk 8.0.0
评论
共有 条评论