资源简介
PCL版本为1.7.1 IDE为 VS2010 本demo实现了SACSegmentation的用法,压缩包里有点云样本和源代码,成功实现了点云的分割和模型提取。

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc char** argv)
{
pcl::PointCloud::Ptr cloud_source (new pcl::PointCloud);
pcl::PointCloud::Ptr cloud_target (new pcl::PointCloud);
// check arguments
if(argc != 2) {
std::cout << “ERROR: the number of arguments is illegal!“ << std::endl;
return -1;
}
// load pcd file
if(pcl::io::loadPCDFile(argv[1] *cloud_source)==-1) {
std::cout << “load source failed!“ << std::endl;
return -1;
}
std::cout << “source loaded!“ << std::endl;
// pass through filter to get the certain field
pcl::PointCloud::Ptr cloud_source_filtered(new pcl::PointCloud);
pcl::PassThrough pt;
pt.setInputCloud(cloud_source);
pt.setFilterFieldName(“y“);
pt.setFilterLimits(-0.1 0.6);
pt.filter(*cloud_source_filtered);
// segmentation
pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients);
pcl::PointIndices::Ptr inliers (new pcl::PointIndices);
pcl::SACSegmentation sac;
sac.setInputCloud(cloud_source_filtered); // cloud_source_filtered 为提取桌子表面 cloud_source 为提取地面
sac.setMethodType(pcl::SAC_RANSAC);
sac.setModelType(pcl::SACMODEL_PLANE);
sac.setDistanceThreshold(0.01);
sac.setMaxIterations(100);
sac.setProbability(0.95);
sac.segment(*inliers *coefficients);
// extract the certain field
pcl::ExtractIndices ei;
ei.setIndices(inliers);
ei.setInputCloud(cloud_source_filtered); // cloud_source_filtered 为提取桌子表面 cloud_source 为提取地面
ei.filter(*cloud_target);
std::cout << *coefficients << std::endl;
// display
pcl::visualization::PCLVisualizer p;
pcl::visualization::PointCloudColorHandlerCustom tgt_h (cloud_target 255 0 0);
p.addPointCloud(cloud_target tgt_h “target“);
p.spinOnce();
pcl::visualization::PCLVisualizer p2;
pcl::visualization::PointCloudColorHandlerCustom src_h (cloud_source 0 255 0);
p2.addPointCloud(cloud_source src_h “source“);
p2.spin();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2349 2014-09-07 11:35 PlaneModelSegmentation.cpp
文件 17492958 2014-07-17 20:32 empty desktop.pcd
文件 358 2014-09-06 10:23 CMakeLists.txt
相关资源
- rdlc报表 完整
- VisualStudioUninstaller vs卸载工具
- 组态王驱动开发包3.0.0.7(中文)
- 多窗口后台鼠标连点器
- 使用选择性重传协议实现UDP可靠通信
- VC 获得文件属性 获取文件的创建时
- 读者写者问题(读者优先,写者优先
- 用VC 编写的仿QQ聊天室程序源代码
- ado数据库MFC图书管理系统vs2010
- 外点法程序
- 外罚函数程序
- qt-电子点菜系统
- 推箱子及人工智能寻路C 源代码
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- MUSIC算法c 实现
- C 餐厅叫号系统(QT平)
- 国际象棋c 完整版
-
ob
jectARX给Auto CAD加工具条 - 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- c 课程设计 职工信息管理系统
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- 清华大学 c 郑莉 ppt课件
- c 程序判断离散数学中命题公式
- 多项式求和(数据结构C 版)
- vc 6.0开发的流程图编辑器
- VC 天空盒(skyBox)实现(附源代码)
- c MFC 画多边形
评论
共有 条评论