Fit a plane to 3D data from image
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jonathan Avesar
el 23 de Ag. de 2019
Comentada: Jonathan Avesar
el 23 de Ag. de 2019
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 comentarios
Respuesta aceptada
darova
el 23 de Ag. de 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);
Más respuestas (0)
Ver también
Categorías
Más información sobre Interpolation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!