octomap點雲壓縮

2022-06-08 17:45:07 字數 2403 閱讀 7244

如果點雲檔案比較大,可以利用octomap庫對點雲進行壓縮。

octomap以八叉樹結構對點雲進行組織,是一種有失真壓縮,定義不同的解析度可以儲存不同尺度的資料。

這裡以rabbit.pcd檔案為例,分別將點雲儲存為文字格式(.txt),二進位制格式(.bin),八叉樹格式(.ot),八叉樹二進位制模式(.bt),對比存為不同格式檔案的大小。

程式執行需要安裝pcl和octomap,示例如下:

#include #include 

#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;

}

儲存後的ot或bt檔案可以利用octovis檢視,輸入octovis rabbit.bt即可。

下表是不同檔案的大小:

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軟體建立 點雲模型 所有逆向工程裝置都將物體取樣成點雲 和二維影象相比,三維影象借助第三個維度的資訊,可以實現天然的物體 背景解耦...