• 大小: 218KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: Matlab
  • 标签: matlab仿真  

资源简介

根据读取文献,自己写的一个基于法向量的点云数据精简的算法,写的比较简单,有注释也通俗易懂。可以更改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


评论

共有 条评论