點雲處理有時因為資料量太大,我們需要對其進行下取樣。
這裡的方法是先將點雲填入固定大小的三維網格中,然後每個網格中選乙個點生成新的點雲。
新點雲即為下取樣後的點雲。
這裡使用斯坦福兔子作為測試點雲。
原始點雲:
取樣後點雲:
matlab**如下:
clear all;close all;
clc;
pc = pcread('
rabbit.pcd');
pcshow(pc);
pc_point =pc.location;
xlimit =pc.xlimits;
ylimit =pc.ylimits;
zlimit =pc.zlimits;
cellsize = 0.005; %定義網格大小
%設定網格數量
w = floor((xlimit(2) - xlimit(1))/cellsize)+1
;h = floor((ylimit(2) - ylimit(1))/cellsize)+1
;d = floor((zlimit(2) - zlimit(1))/cellsize)+1
;%向網格裡填數
voxel =cell(w,h,d);
for i =1
:length(pc_point)
i = floor((pc_point(i,1)-xlimit(1))/cellsize)+1
; j = floor((pc_point(i,2)-ylimit(1))/cellsize)+1
; k = floor((pc_point(i,3)-zlimit(1))/cellsize)+1
; voxel =[voxel;pc_point(i,:)];
end%以網格中第乙個點對原點雲進行下取樣
pointre =;
for i=1
:w
for j=1
:h
for k=1
:d
if isempty(voxel)==0
pointre=[pointre;voxel(1
,:)];
endend
endend
pcre =pointcloud(pointre);
figure;
pcshow(pcre);
PCL中GoxelGrid對點雲下取樣
使用體素化網格方法實現下取樣,即減少點的數量,減少點雲資料,並同時儲存點雲的形狀特徵,在提高配準,曲面重建,形狀識別等演算法速度中非常實用,pcl是實現的voxelgrid類通過輸入的點雲資料建立乙個三維體素柵格,容納後每個體素內用體素中所有點的重心來近似顯示體素中其他點,這樣該體素內所有點都用乙個...
點雲深度學習中的新下取樣方法
2020年9月9日 週三 天氣晴 不悲嘆過去,不荒廢現在,不懼怕未來 2.adaptive sampling cvpr2020 3.總結 參考文獻 目前關於點雲的深度學習方法,大多數都是encoder decoder的結構。encoder部分對點雲進行下取樣,通過 卷積 計算點雲的高階特徵,然後通過...
利用matlab點雲工具處理點雲
本文主要分享利用matlab點雲工具的相關模組來處理點雲,並通過點雲輪廓對點雲體積進行簡單的估計測量。主要的操作流程圖 2具體流程 假設有乙個名為pointcloud.ply的點雲檔案。ply格式簡介 pc pcread path pointcloud.ply 讀入點雲檔案 pcshow pc 顯示...