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

  • 大小: 256KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-12
  • 語言: 其他
  • 標簽: PCL??Boundary??

資源簡介

BoundaryEstimation測試代碼,有比較詳細的注釋。另外是附加了相關算法的一篇文獻,對于理解這個函數比較有幫助

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
using?namespace?std;
#define?M_PI?3.14159

int?main()
{
pcl::PointCloud::Ptr?cloud(new?pcl::PointCloud);
//?if?(pcl::io::loadPCDFile(“/home/yxg/pcl/pcd/mid.pcd“*cloud)?==?-1)
if?(pcl::io::loadPCDFile(“E:\\program_study\\C++\\pcd_data\\table_scene_lms400.pcd“?*cloud)?==?-1)
{
PCL_ERROR(“COULD?NOT?READ?FILE?mid.pcl?\n“);
return?(-1);
}

std::cout?<size()?< pcl::PointCloud::Ptr?normals(new?pcl::PointCloud);
pcl::PointCloud?boundaries;
pcl::BoundaryEstimation?est;
pcl::search::KdTree::Ptr?tree(new?pcl::search::KdTree());
/*
pcl::KdTreeFLANN?kdtree;??//創建一個快速k近鄰查詢查詢的時候若該點在點云中,則第一個近鄰點是其本身
kdtree.setInputCloud(cloud);
int?k?=2;
float?everagedistance?=0;
for?(int?i?=0;?i?size()/2;i++)
{
vector?nnh?;
vector?squaredistance;
//??pcl::PointXYZ?p;
//???p?=?cloud->points[i];
kdtree.nearestKSearch(cloud->points[i]knnhsquaredistance);
everagedistance?+=?sqrt(squaredistance[1]);
//???cout< }

everagedistance?=?everagedistance/(cloud->size()/2);
cout<<“everage?distance?is?:?“<
*/



pcl::NormalEstimation?normEst;??//其中pcl::PointXYZ表示輸入類型數據,pcl::Normal表示輸出類型且pcl::Normal前三項是法向,最后一項是曲率
normEst.setInputCloud(cloud);
normEst.setSearchMethod(tree);
//?normEst.setRadiusSearch(2);??//法向估計的半徑
normEst.setKSearch(9);??//法向估計的點數
normEst.compute(*normals);
cout?<size()?<
//normal_est.setViewPoint(000);?//這個應該會使法向一致
est.setInputCloud(cloud);
est.setInputNormals(normals);
est.setAngleThreshold(M_PI/1.2?);//默認是M_PI/2
//???est.setSearchMethod?(pcl::search::KdTree::Ptr?(new?pcl::search::KdTree));
est.setSearchMethod(tree);
est.setKSearch(30);??//一般這里的數值越高,最終邊界識別的精度越好
//??est.setRadiusSearch(everagedistance);??//搜索半徑
est.compute(boundaries);

//??pcl::PointCloud?boundPoints;
pcl::PointCloud::Ptr?boundPoints(new???pcl::PointCloud);
pcl::PointCloud?noBoundPoints;
int?countBoundaries?=?0;
for?(int?i?=?0;?isize();?i++){
uint8_t?x?=?(boundaries.points[i].boundary_point);
int?a?=?static_cast(x);?//該函數的功能是強制類型轉換
if?(a?==?1)
{
//??boundPoints.push_back(cloud->points[i]);

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4588??2018-01-02?19:27??新建文件夾\PCL_BoundaryPoint.cpp
?????文件??????295165??2015-10-13?18:59??新建文件夾\散亂數據點云邊界特征自動提取算法.pdf
?????目錄???????????0??2018-01-02?20:46??新建文件夾\

評論

共有 條評論