MATLAB: How to make a select-able grid

guimatlab gui

I need some guidance on how to make a selectable grid. I need to make a GUI that allows people to select a box on a grid over an image and make it change colors. So say I have a 25×25 grid over an image. if a person clicks on box 13,20 that box should change to blue. How do i do that?

Best Answer

N = 25 ;
x = linspace(0,1,N) ;
y = linspace(0,1,N) ;
[X,Y] = meshgrid(x,y) ;
coor = [X(:) Y(:)] ;
I = imread('cameraman.tif');
image([0 1],[0 1],I)
hold on
plot(X,Y,'k') ;
plot(X',Y','k') ;
count = 0 ;
while count == 0
[x,y] = ginput(1) ;
idx = knnsearch(coor,[x y],'k',4) ;
% form bounding box
x0 = min(coor(idx,1)) ;x1 = max(coor(idx,1)) ;
y0 = min(coor(idx,2)) ;y1 = max(coor(idx,2)) ;
% square points
coori = [x0 y0 ; x0 y1 ; x1 y1 ; x1 y0 ; x0 y0] ;
patch(coori(:,1),coori(:,2),'b') ;
end
Related Question