Matlab基于主成分分析(PCA)的平面拟合(一)

1.概述

       利用主成分分析(Principal Components Analysis, PCA)方法,可计算待拟合点的法向量,进而得到平面参数

原理详见参考文献

Pauly M, Keiser R, Gross M. Multi‐scale feature extraction on point‐sampled surfaces[C]//Computer graphics forum. Oxford, UK: Blackwell Publishing, Inc, 2003, 22(3): 281-289.

2.代码实现

function planes = fitPlane_PCA(data)% 功能:利用PCA拟合平面% 输入:data   - 原始数据(m*3)    % 输出:planes - 拟合所得平面参数 points = data(:,1:3);[m,~] = size(points);% 计算协方差矩阵M = points-ones(m,1)*(sum(points,1)/m);C = M.'*M./(m-1);  % 计算特征值与特征向量[V, D] = eig(C);% 最小特征值对应的特征向量为法向量s1 = D(1,1);s2 = D(2,2);s3 = D(3,3);if (s1 <= s2 &&am

你可能感兴趣的:(python,聚类,机器学习,人工智能)