繁体   English   中英

拟合最小二乘均值平面以在Matlab中指向云数据

[英]Fit a least-square mean plane to point cloud data in Matlab

我真的很难在Matlab(最小二乘法)中使用平均平面来指向云数据。 我已经尝试了许多其他方法,如本页所示,但是获得与图像中相同的平均平面,这显然是非常错误的。 你知道什么可能是错的吗?

load('xyz.mat'); %//load the variable 'a' that is 44005x3 in size

x = a(:,1);
y = a(:,2);
z = a(:,3);
%//Calculate coeffs for a mean plane for points x,y,z
%//eq: xh(1) xh(2)*x + xh(3)y +  - z = 0

[X,Y] = meshgrid(min(x):10:max(x),min(y):10:max(y));

A = [ones(length(x),1) x y ];
xh = A'*A\(A'*z);
Zp = X.*(xh(2)) + Y.*xh(3) + xh(1);

%//plot mean plane
mesh(X,Y,Zp,'EdgeColor','Black');
hold on;
%//plot pointcloud
pcshow(a)
hold off;

脚本运行的结果

链接到Matlab点云数据

尝试使用pcfitplane功能。 它使用RANSAC做得非常合适。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM