I/O子產品中共有21個類
(1)class pcl::FIleReader:定義了PCD檔案的讀取接口,主要用作其他讀取類的父類 pcl::FileReader有pcl::PCDReader和pcl::PLYReader子類
(2)class pcl::FIleWrite : 與class pcl::FIleReader對應,是寫入PCD檔案類的接口定義,作為其他寫入類的父類,pcl::Filewriter有pcl::PCDwriter和pcl::PLYWriter子類
(3) class pcl::Grabber:類Grabber為PCL1.X對應的裝置驅動接口的基類定義
父類 子類
pcl::ONIGrabber
pcl::Grabber pcl::OpenNIGrabber
pcl::PCDGrabberBase ----------pcl::PCDGrabber< PointT >
(4)classopenni_wrapper::OpenNIDevice:定義OpenNI裝置的基類,用于擷取包括紅外資料,RGB資料,深度圖像資料
父類 子類
openni_wrapper::DeviceONI
openni_wrapper::OpenNIDevice openni_wrapper::DeviceKinect
openni_wrapper::DevicePrimesense
openni_wrapper::DeviceXtionPro
PCD(點雲資料)檔案格式,以下幾種格式
(1)PLY是一種多邊形檔案格式,
(2)STL是3D System公司建立的模型檔案格式,主要應用于CAD,CAM領域
(3)OBJ是從幾何學上定義的檔案格式,
(4)X3D是符合ISO标準的基于XML的檔案格式,表示3D計算機圖形資料
PCD檔案頭格式
每個PCD檔案包含一個檔案頭,确定和聲明檔案中存儲這點雲的資料的某種特性,PCD檔案必須用ASCII碼來編碼,
(1)VERSION---------指定PCD檔案版本
(2) FIELSS------------指定一個點惡意有的每一個次元和字段的名字例如
FILEDS x y z #XYZ data
FILEDS x y z rgb #XYZ + color
FILEDS x y z normal_x normal_y normal_z #XYZ +surface normal
FILEDS j1 j2 j3 #moment invariants
.....
(3) SIZE-----------用位元組數指定每一個次元的大小 例如
unsigned char/char? has 1 byte
unsigned short/short? has 2 byte
double ?has 8 byte
(4) TYPE------------用一個字元指定每一個次元的類型 被接受類型有
I----------------表示有符号類型 int8(char) int16 (short) int32(int)
U----------------表示無符号類型 ------------------
F----------------表示浮點類型
(5)COUNT----------指定每一次元包含的元數目(預設情況下,沒有設定 的話,所有次元的數目被設定為1)
(6)WIDTH------用點的數量表示點雲資料集的寬度,根據有序點雲還是無序點雲,WIDTH有兩層解釋:
1,它能确定無序資料集的點雲中點的個數,
2,它能确定有序點雲資料集的寬度
注意有序點雲資料集,意味着點雲是類似與圖像的結構,資料分為行和列,這種點雲的執行個體包括立體錄影機和時間飛行錄影機生成的資料,有序資料集的優勢在于,預先了解相鄰點(和像素點類似)的關系,鄰域操作更加高效,這樣就加速了計算并降低了PCL中某些算法的成本。例如:WIDTH 640 #每行有640個點
(7)HEIGHT---------------用點的數目表示點雲資料集的高度。類似于WIDTH也有兩層解釋,
有序點雲的例子:WIDTH 640 #像圖像一樣的有序結構,有640行480列,
HEIGHT 480 #這樣該資料集中共有640*480=307200個人點
無序點雲例子:
WIDTH 307200
HEIGHT 1 #有307200個點的有序點雲資料集
(8)VIEWPOINT--------------------指定資料集中點雲的擷取視角。VIEWPOINT有可能在不同坐标系之間轉換的時候應用,在輔助擷取其他特征時,也比較有用, 例如曲面發現,在判斷方向一緻性時,需要知道視點的方位
視點資訊被指為平移(tx ty tz) +四元數(qw qx qy qz)
(9 ) POINTS----------------指定點雲中點的總數
(10) DATA---------------指定存儲點雲資料的資料結構,有兩種形式:ASCII和二進制
(注意PCD檔案的檔案頭部分必須是以上部分順序的精确的指定)
4 資料存儲類型:
(1)如果易ASCII形式,每一點占據一個新行,
(2)如果以二進制的形式,這裡資料是數組向量的PCL
例子 PCD 檔案的一個片段
微信公衆号号可掃描二維碼一起共同學習交流

未完待續**************************