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

1 visualizzazione (ultimi 30 giorni)
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

Risposta accettata

Image Analyst
Image Analyst il 13 Ago 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 Commenti
Image Analyst
Image Analyst il 13 Ago 2019
Sorry, it's actually createMask, not createmask.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by