91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-13
  • 語言: 其他
  • 標簽: PCL??ICP??

資源簡介

利用PCL開源庫編寫代碼FPFH+ICP算法實現點云高精度配準,并計算配準誤差!基于PCL庫版本1.9!

資源截圖

代碼片段和文件信息

#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)
{

//創建初始化目標
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));
}
}
//由旋轉平移矩陣計算旋轉角度
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?< cout?< cout?<}

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?<
std::vector?indices_tgt;
pcl::removeNaNFromPointCloud(*cloud_tgt_o?*cloud_tgt_o?indices_tgt);
std::cout?<
//下采樣濾波
pcl::VoxelGrid?voxel_grid;
voxel_grid.setLeafSize(0.012?0.012?0.012);
voxel_grid.setInputCloud(cloud_src_o);
PointCloud::Ptr?cloud_src(new?PointC

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????8813??2019-03-04?20:04??fpfh+icp.cpp

-----------?---------??----------?-----??----

?????????????????8813????????????????????1


評論

共有 條評論