Create vectors that allow to subdivide the pixels of an image
    1 view (last 30 days)
  
       Show older comments
    
    Alejandro Fernández
 on 9 Jul 2021
  
    
    
    
    
    Commented: Alejandro Fernández
 on 10 Jul 2021
            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:

Thank yo so much
0 Comments
Accepted Answer
  Matt J
      
      
 on 9 Jul 2021
        
      Edited: Matt J
      
      
 on 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 Comments
  Matt J
      
      
 on 10 Jul 2021
				
      Edited: Matt J
      
      
 on 10 Jul 2021
  
			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])
More Answers (0)
See Also
Categories
				Find more on Logical in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


