资源简介

[原创]在PCA法矢重建的基础上,对法矢方向进行了严格设定,解决了法矢反向的问题。同时提供了点表面变化率的求解,参照了文献Mark P,et al. Multi-scale Feature Extraction on Point-Sampled Surfaces[J]. Computer Graphics Forum, 2010, 22(3): 281-289.

资源截图

代码片段和文件信息


% PCA主元分析法求法向量
% 输入:
% p:3*n的数值矩阵
% k:k近邻参数
% neighbors = transpose(knnsearch(transpose(p) transpose(p) ‘k‘ k+1));
% neighbors一般可缺省。若之前做过k邻域求取操作也可直接调用,提高运算效率
% 输出
% n:法矢,已规定方向由邻域拟合出的平面指向查询点
% w:用于评估曲率的参数,详见:Mark Pet al. Multi-scale Feature Extraction on Point-Sampled Surfaces[J]. Computer Graphics Forum 2010 22(3): 281-289.

function [nw] = norcur(p k neighbors)
if nargin < 2
    error(‘no bandwidth specified‘)
end
if nargin < 3
    neighbors = transpose(knnsearch(transpose(p) transpose(p) ‘k‘ k+1));
end
m = size(p2);
n = zeros(3m);
w = zeros(1m);
for i = 1:m
    x = p(:neighbors(2:end i));
    p_bar = 1/k * sum(x2);
    
    P = (x - repmat(p_bar1k)) * transpose(x - repmat(p_bar1k)); %邻域协方差矩阵P
    
    [VD] = eig(P);
    
    [d0 idx] 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1194  2018-04-03 18:59  norcur.m
     文件         249  2018-04-03 18:59  norcur_demo.m

评论

共有 条评论