Fit a plane to 3D data from image

9 views (last 30 days)
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
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,

Accepted Answer

darova
darova on 23 Aug 2019
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);
  1 Comment
Jonathan Avesar
Jonathan Avesar on 23 Aug 2019
I understand, thank you so much! Yeah the size of the data there is unnecessary.

Sign in to comment.

More Answers (0)

Products


Release

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!