资源简介
[原创]在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
评论
共有 条评论