程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 學習PCL心得領會——構造點雲(Organized PointClouds)

學習PCL心得領會——構造點雲(Organized PointClouds)

編輯:關於C++

學習PCL心得領會——構造點雲(Organized PointClouds)。本站提示廣大學習愛好者:(學習PCL心得領會——構造點雲(Organized PointClouds))文章只能為提供參考,不一定能成為您想要的結果。以下是學習PCL心得領會——構造點雲(Organized PointClouds)正文


有在學習PCL的冤家們,或多或少會接觸到構造點雲(Organized PointClouds)。

構造點雲的定義

什麼是構造點雲?上面援用PCL官網的一段解釋。

1 構造點雲:An organized point cloud dataset is the name given to point clouds that resemble

an organized image (or matrix) like structure, where the data is split into rows and columns.

也就是說,像往常的照片一樣,有行列順序的點雲,叫構造點雲。

例如:

cloud.width = 640; // Image-like organized structure, with 640 rows and 480 columns,

cloud.height = 480; // thus 640*480=307200 points total in the dataset

相反,構造點雲以外的點雲,就叫無構造點雲。

例如:

cloud.width = 307200;

cloud.height = 1; // unorganized point cloud dataset with 307200 points

構造點雲的重要性

由Kinect等支持OpenNI接口的相機獲取的點雲為構造點雲,但是構造點雲經過某些人為操作後,會變為無構造點雲,比方濾波操作等。

而PCL算法庫外面的某些重要算法,僅支持構造點雲,比方多平米聯系算法(OrganizedMultiPlaneSegmentation)。

想必有不少冤家遇到過這樣的問題:

[pcl::IntegralImageNormalEstimation::setInputCloud] Input dataset is not organized (height=1).

上面,我們以直通濾波為例,解釋如何讓構造點雲經過操作之後,仍為構造點雲。閒話不多說,直接上代碼:

pcl::PassThrough<pcl::PointXYZ> pass;
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud1(new pcl::PointCloud<pcl::PointXYZ>);
pass.setInputCloud(cloud);
pass.setFilterFieldName("z");
pass.setFilterLimits(0.4, 0.94);
pass.setKeepOrganized(true);
pass.filter(*cloud1);

我們只需求在停止濾波的時分,將點雲設置為KeepOrganized即可,也就是pass.setKeepOrganized(true);這條語句。

上面附上一幅OrganizedMultiPlaneSegmentation的效果圖,祝大家學習愉快!

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved