資源簡介
在應用中,有時需要將點云數據去掉背景,保留本體,最簡單的方法,將點云數據與背景數據相減,留下來的既是本體數據
代碼片段和文件信息
#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。“?< 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? {
if?(kdtree.nearestKSearch(Acloud->points[i]?K?pointIdxNKNSearch?pointNKNSquaredDistance)?>?0)
{
//cout?< 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個文件信息
評論
共有 條評論