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

조회 수: 1 (최근 30일)
Jason
Jason 2019년 8월 13일
댓글: Image Analyst 2019년 8월 13일
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

채택된 답변

Image Analyst
Image Analyst 2019년 8월 13일
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
Jason
Jason 2019년 8월 13일
Ah, it because I delete(h) earlier
Jason
Image Analyst
Image Analyst 2019년 8월 13일
Sorry, it's actually createMask, not createmask.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by