Fit a plane to 3D data from image
2 次查看(过去 30 天)
显示 更早的评论
Hello,
I have an image, I, where
>> whos I
Name Size Bytes Class Attributes
I 2056x2464 5065984 uint8
I plotted the surface using surf:
surf(double(I))
which displays this:
![surf.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/235126/surf.png)
Now I would like to fit this surface to a plane. So I think I need to use something like
fit([x, y], z, 'ax+by+c')
but I can't figure out how to format the x,y,z input data using my image. Does anyone know how to do this?
Thanks,
0 个评论
采纳的回答
darova
2019-8-23
You have to form vectors of x,y,z the same size. Also i suggest you to reduce your data
[m,n] = size(I);
[X,Y] = meshgrid(1:m,1:n);
% get every 10 000th point
X = X(1:1e4:end)';
Y = Y(1:1e4:end)';
Z = I(1:1e4:end)';
F = fit([X,Y],Z,fittype);
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interpolation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!