資源簡介
根據讀取文獻,自己寫的一個基于法向量的點云數據精簡的算法,寫的比較簡單,有注釋也通俗易懂。可以更改REM7的取值(0<REM7<=1),來調整精簡比例。

代碼片段和文件信息
P0?=?load(‘surfacewithnormal.txt‘);
XX=P0;
figure(1);
quiver3(P0(:1)P0(:2)P0(:3)-P0(:4)-P0(:5)-P0(:6)‘r‘);
hold?on;
plot3(XX(:1)XX(:2)XX(:3)‘b.‘);
P1=[XX(:1)XX(:2)XX(:3)];
P2=[XX(:1)XX(:2)XX(:3)];
n=size(XX1);
%最近鄰的8個點
idx=knnsearch(P1P2‘k‘9);
o=0;
%計算V‘的值
for?i?=?1:n
????for?j?=?2:9
????????a=[XX(i4)XX(i5)XX(i6)];
????????b=XX(idx(ij):);
????????b1=[b(:4)b(:5)b(:6)];
????????al=abs(dot(ab1));
????????o=o+al;
????end
????Z(i)=1-(o/8);
????o=0;
end
Z=Z‘;
%對V‘分類
lei1=0lei2=0lei3=0lei4=0lei5=0lei6=0lei7=0;
for?i=1:n
????if(Z(i)>=0&&Z(i)<0.003)
????????lei1=lei1+1;
????????class1(lei1:)=P1(i:);
????end
????if(Z(i)>=0.003&&Z(i)<0.004)
??????????lei2=lei2+1;
??????????class2(lei2:)=P1(i:);
????end
????if(Z(i)>=0.004&&Z(i)<0.008)
??????????lei3=lei3+1;
??????????class3(lei3:)=P1(i:);
?????????%?class3(lei3:)=P0(i:);
????end
????if(Z(i)>=0.008&&Z(i)<0.016)
??????????lei4=lei4+1;
??????????class4(lei4:)=P1(i:);
????end
?????if(Z(i)>=0.016&&Z(i)<0.032)
??????????lei5=lei5+1;
??????????class5(lei5:)=P1(i:);
?????end
?????if(Z(i)>=0.032&&Z(i)<0.064)
??????????lei6=lei6+1;
??????????class6(lei6:)=P1(i:);
?????end
?????if(Z(i)>=0.064&&Z(i)<=1)
??????????lei7=lei7+1;
??????????class7(lei7:)=P1(i:);
?????end
end
%按照分類類別進行精簡
%class7的采樣比列REM(7)為0.9
SIMall=0.2REM(7)=0.9;
for?i?=?1:6
????REM(i)=REM(7)*[(2*i-1)/13];
end
?%確定抽樣比列
?for?i?=1:7
?????sample(i)=fix(1/(REM(i)));
?end
class1=class1(1:sample(1):end:);
class2=class2(1:sample(2):end:);
class3=class3(1:sample(3):end:);
class4=class4(1:sample(4):end:);
class5=class5(1:sample(5):end:);
class6=class6(1:sample(6):end:);
class7=class7(1:sample(7):end:);
%把七個類別加起來
classlater=[class1;class2;class3;class4;class5;class6;class7];
%顯示精簡后的模型
figure(2);
plot3(classlater(:1)classlater(:2)classlater(:3)‘b.‘);
%hold?on;
%quiver3(P0(:1)P0(:2)P0(:3)P0(:4)P0(:5)P0(:6)‘r‘)
save?P1.txt?classlater?-ascii;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????575738??2018-04-24?15:00??surfacewithnormal.txt
?????文件???????2075??2018-11-02?10:07??normal.m
-----------?---------??----------?-----??----
???????????????577813????????????????????2
- 上一篇:灰度均值MATLAB源程序
- 下一篇:光伏電池板模型 simuli
nk
評論
共有 條評論