How to create multiple ROI in the same figure? I'd like to manually draw multiple region on an image to create a mask of the drawn regions. I attached the code to do it using ellipse that does the job for 5 region, but only last region is displayed.

13 views (last 30 days)
I = imread('13170.jpg');
im = imshow(I);
e = imellipse(gca);% now pick ROI
BW = createMask(e,im);% get BW mask for that ROI
BW(:,:,2) = BW;
BW(:,:,3) = BW(:,:,1);
ROI = I;
ROI(BW == 0) = 255;
figure, imshow(ROI,'Border','tight');

Accepted Answer

KSSV
KSSV on 24 Jan 2017
Edited: KSSV on 24 Jan 2017
You put a loop and call the code the number of times you want. Just call it multiple times and save all the regions.
  5 Comments
KSSV
KSSV on 24 Jan 2017
clc; clear all;
N = 5 ;
I = imread('junk.jpg');
iwant = cell(N,1) ;
for i = 1:N
im = imshow(I);
e = imellipse(gca);% now pick ROI
setColor(e, 'red');
% position = wait(e);
BW = createMask(e,im);% get BW mask for that ROI
BW(:,:,2) = BW;
BW(:,:,3) = BW(:,:,1);
ROI = I;
ROI(BW == 0) = 255;
iwant{i} = ROI ;
end
for i = 1:N
figure
imshow(iwant{i},'Border','tight');
end
Meera chandran
Meera chandran on 31 Aug 2018
Any Idea on how to draw multiple ROI's in 2 images which are place in 'montage' mode and obtain their feature points?
I am getting only one ROI point safter drawing it

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!