資源簡介
幾個點云配準的算法:點云配準PFH、FPFH、icp、NDT、3Dsc:粗配準算法,并計算出誤差
幾個點云配準的算法:點云配準PFH、FPFH、icp、NDT、3Dsc:粗配準算法,并計算出誤差
幾個點云配準的算法:點云配準PFH、FPFH、icp、NDT、3Dsc:粗配準算法,并計算出誤差

代碼片段和文件信息
#include?//采樣一致性
#include?//采取固定數(shù)量的點云
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?//
#include?//
#include?//icp配準
#include?//可視化
#include?//時間
using?pcl::NormalEstimation;
using?pcl::search::KdTree;
typedef?pcl::PointXYZ?PointT;
typedef?pcl::PointCloud?PointCloud;
//點云可視化
void?visualize_pcd(PointCloud::Ptr?pcd_src?PointCloud::Ptr?pcd_tgt?PointCloud::Ptr?pcd_final)
{
//創(chuàng)建初始化目標
pcl::visualization::PCLVisualizer?viewer(“registration?Viewer“);
pcl::visualization::PointCloudColorHandlerCustom?src_h(pcd_src?0?255?0);
pcl::visualization::PointCloudColorHandlerCustom?tgt_h(pcd_tgt?255?0?0);
pcl::visualization::PointCloudColorHandlerCustom?final_h(pcd_final?0?0?255);
viewer.setBackgroundColor(255?255?255);
viewer.addPointCloud(pcd_src?src_h?“source?cloud“);
viewer.addPointCloud(pcd_tgt?tgt_h?“tgt?cloud“);
viewer.addPointCloud(pcd_final?final_h?“final?cloud“);
while?(!viewer.wasStopped())
{
viewer.spinOnce(100);
boost::this_thread::sleep(boost::posix_time::microseconds(100000));
}
}
//由旋轉(zhuǎn)平移矩陣計算旋轉(zhuǎn)角度
void?matrix2angle(Eigen::Matrix4f?&result_trans?Eigen::Vector3f?&result_angle)
{
double?ax?ay?az;
if?(result_trans(2?0)?==?1?||?result_trans(2?0)?==?-1)
{
az?=?0;
double?dlta;
dlta?=?atan2(result_trans(0?1)?result_trans(0?2));
if?(result_trans(2?0)?==?-1)
{
ay?=?M_PI?/?2;
ax?=?az?+?dlta;
}
else
{
ay?=?-M_PI?/?2;
ax?=?-az?+?dlta;
}
}
else
{
ay?=?-asin(result_trans(2?0));
ax?=?atan2(result_trans(2?1)?/?cos(ay)?result_trans(2?2)?/?cos(ay));
az?=?atan2(result_trans(1?0)?/?cos(ay)?result_trans(0?0)?/?cos(ay));
}
result_angle?<
cout?<“x軸旋轉(zhuǎn)角度:“?< cout?<“y軸旋轉(zhuǎn)角度:“?< cout?<“z軸旋轉(zhuǎn)角度:“?<}
int?main(int?argc?char**?argv)
{
//加載點云文件
PointCloud::Ptr?cloud_src_o(new?PointCloud);//原點云,待配準
pcl::io::loadPCDFile(“E:/vs13/pcldata/bun/rabbit.pcd“?*cloud_src_o);
PointCloud::Ptr?cloud_tgt_o(new?PointCloud);//目標點云
pcl::io::loadPCDFile(“E:/vs13/pcldata/bun/rabbit_1.pcd“?*cloud_tgt_o);
clock_t?start?=?clock();
//去除NAN點
std::vector?indices_src;?//保存去除的點的索引
pcl::removeNaNFromPointCloud(*cloud_src_o?*cloud_src_o?indices_src);
std::cout?<“remove?*cloud_src_o?nan“?<
std::vector?indices_tgt;
pcl::removeNaNFromPointCloud(*cloud_tgt_o?*cloud_tgt_o?indices_tgt);
std::cout?<“remove?*cloud_tgt_o?nan“?<
//采樣固定的點云數(shù)量
p
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????8921??2019-03-04?20:18??點云配準PFH、FPFH、icp、NDT、3Dsc\3Dsc+icp.cpp
?????文件????????8813??2019-03-04?20:04??點云配準PFH、FPFH、icp、NDT、3Dsc\fpfh+icp.cpp
?????文件????????7466??2019-03-04?20:19??點云配準PFH、FPFH、icp、NDT、3Dsc\ndt+icp.cpp
?????文件????????8998??2019-03-04?20:26??點云配準PFH、FPFH、icp、NDT、3Dsc\pfh+icp.cpp
?????文件???????????0??2020-02-24?21:14??點云配準PFH、FPFH、icp、NDT、3Dsc\寫了幾個點云配準的算法,主要包括PFH、FPFH、icp、NDT、3Dsc幾種粗配準算法,并計算出誤差。.txt
?????目錄???????????0??2020-02-24?21:14??點云配準PFH、FPFH、icp、NDT、3Dsc\
- 上一篇:視覺SLAM十四講全集視頻鏈接視頻百度云.txt
- 下一篇:qt日程管理軟件
評論
共有 條評論