PCL學習筆記 基本用法2 基本資料結構

2021-09-19 08:44:53 字數 2081 閱讀 3686

在pcl 1.x的版本中,基礎資料結構是pcl:pointcloud。 pointcloud是乙個c++ 類,其包括的資料如下所示:

就是乙個int型別的資料

這個資料指定了點雲集在寬的方向上包含了多少個點。這個寬度有兩個意思:

1. 它指定了點雲中點的數量,如果是無組織點雲集的話;

2. 它指定了點雲中一行有多少個點,如果是有組織的點雲集合的話;

注意:anorganized point clouddataset:這些點雲有點類似於影象 (或矩陣)的結構, 資料被拆分為行和列。這類點雲的主要**於立體相機(雙目相機)或飛行時間相機(rgb-d相機/深度相機/紅外結構光相機)的資料。有組織的資料集的優點是, 通過了解相鄰點 (例如畫素) 之間的關係, 進行最近鄰的操作效率要高得多, 從而加快計算速度並降低 pcl 中某些演算法的成本。

anprojectable point clouddataset:根據針孔相機模型,點雲集中的點(u, v) 與實際空間中的3d座標 (x,y,z)之間有一定的相關性。這種相關性可以用它最簡單的形式表示: u = f * x /z 和 v = f * y/z,其中f為焦距。

example:

cloud.width = 640; // there are 640 points per line

就是乙個int型別的資料

這個資料指定了點雲集在高的方向包含了多少個點。這個高度有兩個意思:

1. 它指定了點雲中一列有多少個點,如果是有組織的點雲集合的話;

2. 如果是無組織的**,那麼這個資料被設定為1,很明顯可以用這個資料檢查點雲集是否有組織;

example:

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

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

example:

cloud.width = 307200;

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

資料型別類似於std::vector

points包含了型別為pointt的資料。

for example, for a cloud containing xyz data, points contains a vector of pcl::pointxyz elements:

pcl::pointcloudcloud;

std::vectordata = cloud.points;

就是乙個bool型別

指定points中的資料是否全部是有限的,此時為true;當資料集中包含有inf/nan等值時,此時為false。

型別是eigen::vector4f

指定感測器的位姿(origin/translation)。這個成員是可選的,不過pcl中的大部分演算法都用不到。

型別是eigen::quaternionf,四元數

指定感測器獲取的位姿。這個成員是可選的,不過pcl中的大部分演算法都用不倒。

為簡化開發過程,pcl:pointcloud類包含了幾個很有用的成員函式。

比如使用者不用通過檢查程式中的height是否等於1來確定點雲集是否有組織,而是使用這個成員函式:pcl:pointcloud

if (!cloud.isorganized ())

...

pointt是點雲的基本資料型別,描述了點雲中的每個元素(點)pcl:points的型別。

pcl包含了很多的關於點的資料型別,不過主要在"adding your own custom pointt type"這個教程裡。

Python學習筆記 2 基本資料型別

在介紹基本資料型別之前,先說乙個系統方法type 返回物件的資料型別,可以幫助我們檢視系統的型別定義 python不同的版本,型別名稱稍有不同,這裡使用的是3.5.2版本 一.基本資料型別 1.空 nonetype 2.布林型 bool 3.整型 int 4.浮點型 float 5.字串 str 二...

Python學習筆記 2 基本資料型別 運算

1.數字 int a 123 2.字串 str a 123 3.列表 list a 1,2,3 3.元祖 tuple a 1,2,3 4.字典 dict a name alex pw 123 age 19 5.布林 bool a true a false a 1 b 2 a b 輸出結果 3 a b...

matplotlib的學習2 基本用法

import matplotlib.pyplot as plt import numpy as np x np.linspace 1,1,50 範圍 1 到 1,個數是50 y 2 x 1 使用plt.figure定義乙個影象視窗.使用plt.plot畫 x y 曲線.使用plt.show顯示影象....