拟合离散点成平面(Python版本)
发布时间
阅读量:
阅读量
1.核心原理阐述
对空间中离散点进行拟合平面的构建,本质上属于一个最优化问题,即寻找使这些点到某一平面距离总和最小的平面。已知的一个先验信息是,该平面必然通过所有离散点的平均位置。接下来需要解决的关键任务是确定该平面的法向量方向。
通过协方差矩阵的SVD分解方法,可以得出最小奇异值所对应的奇异向量,该向量即为所求平面的方向。
2.代码设计与实现
% 随机生成一组(x,y,z),这些点的坐标离一个空间平面比较近
x0=1,L1=2;
y0=1,L2=2;
x=x0+rand(20,1)*L1;
y=y0+rand(20,1)*L2;
z=1+2*x+3*y;
scatter3(x,y,z,'filled')
hold on;
planeData=[x,y,z];
% 协方差矩阵的SVD变换中,最小奇异值对应的奇异向量就是平面的方向
xyz0=mean(planeData,1);
centeredPlane=bsxfun(@minus,planeData,xyz0);
[U,S,V]=svd(centeredPlane);
a=V(1,3);
全部评论 (0)
还没有任何评论哟~
