空间离散点拟合成空间平面

1.原理

空间中的离散点得到拟合平面,其实这就是一个最优化的过程。即求这些点到某个平面距离和最小的问题。我们知道一个先验消息,那就是该平面一定会过众散点的平均值。接着我们需要做的工作就是求这个平面的法向量。

根据协方差矩阵的SVD变换,最小奇异值对应的奇异向量就是平面的方向。

2.代码设计

 
  1. % 随机生成一组(x,y,z),这些点的坐标离一个空间平面比较近

  2. x0=1,L1=2;

  3. y0=1,L2=2;

  4. x=x0+rand(20,1)*L1;

  5. y=y0+rand(20,1)*L2;

  6. z=1+2*x+3*y;

  7. scatter3(x,y,z,'filled')

  8. hold on;

  9.  
  10. planeData=[x,y,z];

  11.  
  12. % 协方差矩阵的SVD变换中,最小奇异值对应的奇异向量就是平面的方向

  13. xyz0=mean(planeData,1);

  14. centeredPlane=bsxfun(@minus,planeData,xyz0);

  15. [U,S,V]=svd(centeredPlane);

  16.  
  17. a=V(1,3);

  18. b=V(2,3);

  19. c=V(3,3);

  20. d=-dot([a b c],xyz0);

  21.  
  22. % 图形绘制

  23. xfit = min(x):0.1:max(x);

  24. yfit = min(y):0.1:max(y);

  25. [XFIT,YFIT]= meshgrid (xfit,yfit);

  26. ZFIT = -(d + a * XFIT + b * YFIT)/c;

  27. mesh(XFIT,YFIT,ZFIT);

3.实验结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值