资源简介

利用Matlab计算三维点云中每个点的单位法向量与特征值。
通过计算当前点与其邻域点的协方差矩阵,进而求得法向量。

资源截图

代码片段和文件信息

A = load(‘Vaihingen_building1.txt‘);
[M~] = size(A);
data = A; 
normal = zeros(M3);
EVs = zeros(M3);
k = 15;
idx = knnsearch(datadata‘Distance‘‘euclidean‘‘NSMethod‘‘kdtree‘‘K‘k); 
for i = 1:M
    %%% 当前点邻域点集索引
    idx_cur = idx(i2:end);  
    %%% 当前点邻域点集
    knb_pts = data(idx_cur1:3);
    [normal(i:)EVs(i:)] = EV(knb_pts);
end
normal(find(normal(:3)<0):) = -normal(find(normal(:3)<0):);

figure;
scatter3(data(:1)data(:2)data(:3)20‘k‘‘filled‘)
hold on
quiver3(data(:1)data(:2)data(:3)normal(:1)normal(:2)normal(:3)‘r‘)
axis equal vis3d

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        613  2020-03-26 13:35  demo_EV.m

     文件        940  2020-03-26 09:39  EV.m

     文件     101934  2020-03-26 09:52  result.png

     文件      50876  2019-06-04 15:14  Vaihingen_building1.txt

----------- ---------  ---------- -----  ----

               154363                    4


评论

共有 条评论