資源簡介
ToF sensor 導出的數據進行三維重建,根據激光從出發到經過散射之后到目標物再被探測器接收到這個時間信息來求解目標物的位置和立體形狀掃描足夠多的點的時候,就能夠得到目標物上的做夠多的點的距離值,只有可以恢復出目標物的3維形狀。
代碼片段和文件信息
clear?all
close?all
clc
fid=fopen(‘fpcd.bin‘‘r‘);
orignaldata=fread(fid‘float32‘);%數據格式轉換
pixelarray=reshape(orignaldata30720084);
a=pixelarray(:50);
b=reshape(a476800);
z_lvbo=b(3:);
z_lvbo1=reshape(z_lvbo320240);
??K?=?medfilt2(z_lvbo1);
??b(3:)=reshape(K176800);
for?i=1:76800
???
????????if?b(3i)>0.535?||?b(3i)<0.3
????????????b(3i)=0;
????????????b(2i)=0;
????????????b(1i)=0;
????????end?
????????
????
end
for?i=1:76800
???
????????if?b(1i)>0.14
????????????b(3i)=0;
????????????b(1i)=0;
????????????b(2i)=0;
????????end?
???
end
for?i=1:76800
???
????????if?b(1i)<-0.2
????????????b(3i)=0;
????????????b(1i)=0;
????????????b(2i)=0;
????????end?
???
end
for?i=1:76800
???
????????if?b(2i)>0.14
????????????b(3i)=0;
????????????b(1i)=0;
????????????b(2i)=0;
????????end?
???
end
x=b(1:);
y=b(2:);
z=b(3:);
x(find(x==0))=[];
y(find(y==0))=[];
z(find(z==0))=[];??
Lx=size(x2);
A=zeros(Lx3);
A(:1)=x(1:);
A(:2)=y(1:);
A(:3)=z(1:);
[idx?dist]?=?knnsearch(AA‘dist‘‘euclidean‘‘k‘6);???%?尋找每一個三維點最近的4個點(除去其本身)
?b1=sum(dist2)/5;?%%最近鄰5個點的距離和
b2(:1)=b1(:1);
- 上一篇:基于半色調技術的圖像影藏
- 下一篇:哈夫曼matlab解碼程序
評論
共有 條評論