How to select a roi in greyscale image and put values to zero

1 visualización (últimos 30 días)
Hello, i have a 12bit greyscale image (tiff) which I want to be able to draw a rectangular roi and fill these values to zero (i.e. black)
This is my code, I cannot see where I am going wrong
Raw=getimage(handles.axes1); % get image from axes component (im using GUIDE)
h = imrect(handles.axes1); % User definable rectangle
position=wait(h)
p = h.getPosition();
position=[p(1) p(2) p(3) p(4)]; % [xmin ymin width height]
delete(h);
Raw(p(2):(p(2)+p(4)),p(1):(p(1)+p(3)))==0; % put user specified roi to 0 (black)
axes(handles.axes1); cla reset; % Clear current axes
imshow(Raw) % Draw modified image

Respuesta aceptada

Image Analyst
Image Analyst el 13 de Ag. de 2019
Use = to assign, not == which is a comparison.
Raw(p(2):(p(2)+p(4)), p(1):(p(1)+p(3))) = 0;
or
mask = h.createmask();
Raw(mask) = 0;
  3 comentarios
Jason
Jason el 13 de Ag. de 2019
Ah, it because I delete(h) earlier
Jason
Image Analyst
Image Analyst el 13 de Ag. de 2019
Sorry, it's actually createMask, not createmask.

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by