Hello, I was wondering if someone could tell me how I can subdivide an image, for example img, so that I can store in a vector the positions of the rows and in another vector the columns (which logically would not be integers) to divide each pixel in 5 parts.
img = rand(10,20);
figure, imshow(img,'InitialMagnification','fit');
That is, what I would like is to be able to build a grid that follows the basis of what the poly2mask function does but with all the pixels:
Poly2Mask Grid
Thank yo so much

 Akzeptierte Antwort

Matt J
Matt J am 9 Jul. 2021
Bearbeitet: Matt J am 9 Jul. 2021
[m,n]=size(img);
y=linspace(0,m,5*m+1).'+0.1; y(end)=[];
x=linspace(0,n,5*n+1).'+0.1; x(end)=[];

3 Kommentare

Hi, thank you very much for your answer, however I have rendered it and it does not match with what I expected:
img = rand(10,20);
[m,n]=size(img);
y=linspace(0,m,5*m+1).'+0.1; y(end)=[];
x=linspace(0,n,5*n+1).'+0.1; x(end)=[];
[X,Y] = meshgrid(x,y);
figure, imshow(img,'InitialMagnification','fit');
hold on
plot(X,Y,'.')
I don't see anything wrong, other than that the XData,YData that you've chosen for the image are oddly shifted,
img = rand(10,20);
[m,n]=size(img);
y=linspace(0,m,5*m+1).'+0.1; y(end)=[];
x=linspace(0,n,5*n+1).'+0.1; x(end)=[];
[X,Y] = meshgrid(x,y);
figure, imshow(img,'InitialMagnification','fit');
hold on
plot(X,Y,'.')
himg=findobj(gca,'Type','image');
himg.XData=(1:n)-0.5;
himg.YData=(1:m)-0.5;
axis([0,n,0,m])
Ok! Thank you so much for your help!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by