资源简介
在应用中,有时需要将点云数据去掉背景,保留本体,最简单的方法,将点云数据与背景数据相减,留下来的既是本体数据
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include //写入txt
#include
#include //将整型转换成字符型
using namespace std; // 可以加入 std 的命名空间
//给定两个点云A和B,求取两个点云的不同之处,A异B表示在A中不在B中的点,B异A表示在B中不在A中的点
int
main(int argc char** argv)
{
string ReviseName;
cout << “是否已经修改输出文件(A异B和B异A)的名称?请输入Y或N。“ << endl;//不参与计时,因此与输入时间时的人的反应有关
cin >> ReviseName;
if (ReviseName != “Y“)
{
return (-1);//跳出整个程序
}
//-------------------------------------------------------------------------------
srand(time(NULL)); //seeds rand() with the system time
time_t begin end;
begin = clock(); //开始计时
//-------------------------------------------------------------------------------
pcl::PointCloud::Ptr Acloud(new pcl::PointCloud); // 存放A点云
if (pcl::io::loadPCDFile(“basicpoint.pcd“ *Acloud) == -1)//*打开点云文件。
{ //带路径的格式【注意路径的反斜杠与电脑自己的不同】:if (pcl::io::loadPCDFile(“E:/rabbit_gra.pcd“ *cloud) == -1)
PCL_ERROR(“Couldn‘t read that boundary pcd file\n“); // //不带路径的格式【只是把路径删掉即可】:if (pcl::io::loadPCDFile(“rabbit_gra.pcd“ *cloud) == -1)
return(-1);
}
pcl::PointCloud::Ptr Bcloud(new pcl::PointCloud); // 存放B点云
if (pcl::io::loadPCDFile(“background.pcd“ *Bcloud) == -1)//*打开点云文件。
{ //带路径的格式【注意路径的反斜杠与电脑自己的不同】:if (pcl::io::loadPCDFile(“E:/rabbit_gra.pcd“ *cloud) == -1)
PCL_ERROR(“Couldn‘t read that outlier pcd file\n“); // //不带路径的格式【只是把路径删掉即可】:if (pcl::io::loadPCDFile(“rabbit_gra.pcd“ *cloud) == -1)
return(-1);
}
pcl::KdTreeFLANN kdtree;
kdtree.setInputCloud(Bcloud);//在Bcloud中进行搜索
int K = 1;
float p = 1e-3;
std::vector pointIdxNKNSearch(K);//进行1邻域点搜索
std::vector pointNKNSquaredDistance(K);
//设置参数
int nr_Apoints = (int)Acloud->points.size();//获得Acloud的大小,用于计算时的循环
int nr_Bpoints = (int)Bcloud->points.size();//获得Bcloud的大小,用于计算时的循环
std::vector LA01(nr_Apoints 0); //存放各点有无重合点的标记。初始化为0,其中0表示无重合点,1表示有重合点
std::vector LB01(nr_Bpoints 0); //存放各点有无重合点的标记。初始化为0,其中0表示无重合点,1表示有重合点
std::vector LA; LA.clear(); //存放A中异于B的点,初始为空!!!不定义长度,因此后面要用L.push_back(i)来压入数据。
std::vector LB; LB.clear(); //存放B中异于A的点,初始为空!!!不定义长度,因此后面要用L.push_back(i)来压入数据。
for (int i = 0; i < nr_Apoints; ++i)//对A中的每个点与B中点进行比较
{
if (kdtree.nearestKSearch(Acloud->points[i] K pointIdxNKNSearch pointNKNSquaredDistance) > 0)
{
//cout << pointNKNSquaredDistance[0] << endl;
if (pointNKN
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 36352 2020-10-27 12:45 点云求异\.vs\点云求异\v15\.suo
文件 102416384 2020-10-27 12:45 点云求异\.vs\点云求异\v15\Browse.VC.db
文件 8031232 2018-07-12 13:56 点云求异\x64\Debug\点云求异.pdb
文件 90624 2020-10-27 12:45 点云求异\x64\Release\点云求异.exe
文件 2569393 2020-10-27 12:45 点云求异\x64\Release\点云求异.iobj
文件 958768 2020-10-27 12:45 点云求异\x64\Release\点云求异.ipdb
文件 5427200 2020-10-27 12:45 点云求异\x64\Release\点云求异.pdb
文件 4253524 2020-10-26 13:27 点云求异\点云求异\background.pcd
文件 2340391 2020-10-27 12:38 点云求异\点云求异\background2.pcd
文件 4552819 2020-10-24 16:03 点云求异\点云求异\basicpoint.pcd
文件 975002 2020-10-27 12:38 点云求异\点云求异\basicpoint2.pcd
文件 3577999 2020-10-27 12:38 点云求异\点云求异\crosspoint.pcd
文件 6161 2018-05-11 14:10 点云求异\点云求异\PCLDebug64.props
文件 5870 2020-10-27 12:45 点云求异\点云求异\SeekDifference.cpp
文件 3469491 2020-10-27 11:09 点云求异\点云求异\x64\Debug\SeekDifference.obj
文件 7089152 2018-07-12 13:56 点云求异\点云求异\x64\Debug\vc120.idb
文件 4747264 2018-07-12 13:56 点云求异\点云求异\x64\Debug\vc120.pdb
文件 2804736 2020-10-27 11:09 点云求异\点云求异\x64\Debug\vc141.idb
文件 5500928 2020-10-27 11:09 点云求异\点云求异\x64\Debug\vc141.pdb
文件 303 2020-10-27 11:09 点云求异\点云求异\x64\Debug\点云求异.log
文件 1744 2020-10-27 11:09 点云求异\点云求异\x64\Debug\点云求异.tlog\cl.command.1.tlog
文件 689818 2020-10-27 11:09 点云求异\点云求异\x64\Debug\点云求异.tlog\CL.read.1.tlog
文件 878 2020-10-27 11:09 点云求异\点云求异\x64\Debug\点云求异.tlog\CL.write.1.tlog
文件 11538 2020-10-27 11:09 点云求异\点云求异\x64\Debug\点云求异.tlog\li
文件 27780 2020-10-27 11:09 点云求异\点云求异\x64\Debug\点云求异.tlog\li
文件 458 2020-10-27 11:09 点云求异\点云求异\x64\Debug\点云求异.tlog\li
文件 0 2020-10-27 11:08 点云求异\点云求异\x64\Debug\点云求异.tlog\unsuccessfulbuild
文件 215 2020-10-27 11:08 点云求异\点云求异\x64\Debug\点云求异.tlog\点云求异.lastbuildstate
文件 9530786 2020-10-27 12:45 点云求异\点云求异\x64\Release\SeekDifference.obj
文件 5369856 2020-10-27 12:45 点云求异\点云求异\x64\Release\vc141.pdb
............此处省略32个文件信息
相关资源
- SfM稀疏三维点云重建--完整工程文件
- icp三维点云配准文件
- openGL实现三维点云显示
- OpenNI获取三维点云并用OpenGL显示可旋
- 知名的斯坦福兔子的三维点云数据,
- ply格式三维点云
- OpenGL实现三维点云显示,鼠标控制
- 常见的三维点云数据,已经整理数据
- ply格式三维点云模型
- Bunny Horse Dragon 三维点云数据
- 三维点云数据的预处理研究
- 三维点云数据,内含6个点云数据
- pcd格式三维点云
- OpenGL显示三维点云图像
- 三维点云的可视化
- 用于三维重建方面的三维点云文件
- SfM多视图三维点云重建–完整工程文
- 声呐三维点云数据建模
- 基于KDtree的三维点云算法
- 猫咪的三维点云数据.asc
- 三维点云数据的显示,并可以对三维
- 三维点云重构生成网格
- PCD格式兔子点云数据
- 知名的斯坦福兔子的三维点云数据,
- 三维点云抽稀.rar
- ICP算法源代码
- venus模型三维点云数据
- 知名的斯坦福兔子的三维点云数据,
评论
共有 条评论