本文主要分享利用matlab點雲工具的相關模組來處理點雲,並通過點雲輪廓對點雲體積進行簡單的估計測量。
主要的操作流程圖
2具體流程
假設有乙個名為pointcloud.ply的點雲檔案。——ply格式簡介
pc = pcread('path\pointcloud.ply'); %讀入點雲檔案
pcshow(pc) %顯示點雲
這裡需要注意.ply檔案中標頭檔案類似這樣的格式:
element vertex 12
property float x
property float y
property float z
property uchar blue
property uchar green
property uchar red
其中x,y,x是三維點雲的空間座標,後面的b,g,r代表每個點的顏色,後一專案對於紋理對映和顯示很重要,可以分別提取出來,隨後用pcshow來顯示;
pcread讀入的檔案後生成
location: [850554×3 single]
color: [850554×3 uint8]
normal: [850554×3 single]
count: 850554
xlimits: [6.5701 15.5542]
ylimits: [-1.5363 4.2114]
zlimits: [-15.7035 0.2691]
我們可以提取出其中的位置和顏色來進行紋理對映並畫圖
figure(1)
pc_tmp(:,1) = pc.location(:,3); %調整點雲的方位的和xyz軸
pc_tmp(:,2) = pc.location(:,1);
pc_tmp(:,3) = pc.location(:,2);
pc_col = pc.color
pcshow(pc_tmp,pc.color)
這裡利用cmvs/pmvs方法生成的點雲資料作為例子:
為了求得這一建築物的體積,通過獲得這一建築物的輪廓包絡來得到其體積。主要利用matlab中的alphashape函式和volum
alphashape
此函式主要用於從離散的三維空間點雲中提取邊緣並建立對應的包絡:
shp = alphashape(x,y,z)
主要控制引數有alpha值,用於控制生產輪廓的精細程度(越小越細膩)需要注意的是需要將點雲的位置座標轉換為雙精度的型別。『regionthreshold』 忽略生成包絡中的小物體,壓制小物體的閾值體積
『holethreshold』 填充包絡中的空洞,生成完整的體積形態
- *alphashape(x,y,z,alpha,』holethreshold 『,xx,』regionthreshold』,xx)
x=pc.location(:,3);y=pc.location(:,1);z=pc.location(:,2);%get point out
x = double(x); y=double(y); z= double(z);
%獲取點雲座標
alp = 5;region = 0.75;%hole = 1; region = 0.75;
shp = alphashape(x,y,z,alp);
%生產點雲的包絡資料
%ref:
plot(shp)
%顯示點雲包絡
v= volume(shp);
title(['v= 'num2str(v) ,'m3']) %計算體積並顯示
上圖為生成的點雲包絡(需要仔細條件引數以生成符合需求精度的包絡),通過volum可計算此包絡所佔粗略的體積。
利用matlab處理點雲
本文主要分享利用matlab點雲工具的相關模組來處理點雲,並通過點雲輪廓對點雲體積進行簡單的估計測量。主要的操作流程圖 2具體流程 ply點雲檔案讀入點雲資料顯示點雲資料獲取點雲輪廓求得點雲所佔體積結束處理 假設有乙個名為pointcloud.ply的點雲檔案。ply格式簡介 pc pcread p...
PLY格式 matlab點雲處理
ply格式 1.0版ply格式 也稱為斯坦福三角格式 定義了一種用於儲存3d資料的靈活而系統的方案。ascii標頭通過定義每個帶有一組 屬性 的 元素 來指定檔案中的資料。許多ply檔案僅具有頂點和面資料,但是,也可以包含其他資料,例如顏色資訊,頂點法線或特定於應用程式的屬性。注意computer ...
點雲概念與點雲處理
點雲概念 點雲與三維影象的關係 三維圖像是一種特殊的資訊表達形式,其特徵是表達的空間中三個維度的資料,表現形式包括 深度圖 以灰度表達物體與相機的距離 幾何模型 由cad軟體建立 點雲模型 所有逆向工程裝置都將物體取樣成點雲 和二維影象相比,三維影象借助第三個維度的資訊,可以實現天然的物體 背景解耦...