如果點雲檔案比較大,可以利用octomap庫對點雲進行壓縮。
octomap以八叉樹結構對點雲進行組織,是一種有失真壓縮,定義不同的解析度可以儲存不同尺度的資料。
這裡以rabbit.pcd檔案為例,分別將點雲儲存為文字格式(.txt),二進位制格式(.bin),八叉樹格式(.ot),八叉樹二進位制模式(.bt),對比存為不同格式檔案的大小。
程式執行需要安裝pcl和octomap,示例如下:
#include #include儲存後的ot或bt檔案可以利用octovis檢視,輸入octovis rabbit.bt即可。#include
#include
#include
#include
using
namespace
std;
class
pointcloudinfo
; /*
!< minimum x-axis value of octomap
*/double octo_min_y; /*
!< minimum y-axis value of octomap
*/double octo_min_z; /*
!< minimum z-axis value of octomap
*/double octo_max_x; /*
!< maximum x-axis value of octomap
*/double octo_max_y; /*
!< maximum y-axis value of octomap
*/double octo_max_z; /*
!< maximum z-axis value of octomap
*/double octo_resol; /*
!< octomap resolution
*/};
struct
xyz;
intmain()
fclose(fp);
fp = fopen("
rabbit.bin
","wb");
fwrite(&vp[0],vp.size()*sizeof(xyz),1
,fp);
fclose(fp);
tree.updateinneroccupancy();
tree.write(
"rabbit.ot");
tree.writebinary(
"rabbit.bt");
///////////////////////////
read bt
///////////////////////////////////////
octomap::octree octo_tree(0.001
); octo_tree.readbinary(
"rabbit.bt");
pointcloudinfo::ptr pc_info(
newpointcloudinfo());
octo_tree.getmetricmin(pc_info->octo_min_x, pc_info->octo_min_y, pc_info->octo_min_z);
octo_tree.getmetricmax(pc_info->octo_max_x, pc_info->octo_max_y, pc_info->octo_max_z);
pc_info->octo_resol =octo_tree.getresolution();
pc_info->cloud.reset(new pcl::pointcloud());
pcl::pointxyz point;
for (octomap::octree::leaf_iterator it = octo_tree.begin_leafs(); it != octo_tree.end_leafs(); ++it)
}return0;
}
下表是不同檔案的大小:
rabbit.pcd
1.2m
rabbit.txt
1.0m
rabbit.bin
431.4k
rabbit.ot
282.8k
rabbit.bt
44.2k
可以看出bt檔案壓縮率還是很高的,雖然是有失真壓縮,不過在很多情況下已經夠用了。
點雲壓縮的opencl實現
2.解碼 3.opencl演算法 4.演算法實現 5.參考文獻 點雲壓縮的八叉樹演算法 通過迴圈遞迴的方法對大小2n 2n 2 n2 n times 2 n times 2 n 2n 2n 2n的八叉樹空間8等分劃分,最多剖分n nn次。在完成逐層劃分之後,對資料編碼,編碼方式為 假設點雲座標p x...
PCL 八叉樹的應用 點雲壓縮
點雲由龐大的資料集組成,這些資料集通過距離 顏色 法線 等附加資訊來描述空間的三維點。此外,點雲還能以非常高的速率被建立出來,因此需要占用相當大的儲存資源,一旦點雲需要儲存或者通過速率受限制的通訊通道進行傳輸,提供針對這種資料的壓縮方法就變得十分有用。pcl 提供了點雲的壓縮功能,它允許編碼壓縮所有...
點雲概念與點雲處理
點雲概念 點雲與三維影象的關係 三維圖像是一種特殊的資訊表達形式,其特徵是表達的空間中三個維度的資料,表現形式包括 深度圖 以灰度表達物體與相機的距離 幾何模型 由cad軟體建立 點雲模型 所有逆向工程裝置都將物體取樣成點雲 和二維影象相比,三維影象借助第三個維度的資訊,可以實現天然的物體 背景解耦...