ROI selection without overlap

Technical Source
2 min readFeb 25, 2022

--

I’m trying to select several ROI’s from an image using the following code:

for i=1:nbrois
roi3d{i}=roipoly(A);
end

Which works OK…I however, need to be sure that those ROIs don’t overlap with each other. Is there a way of selecting the first ROI, have the program show the polygon on top of the image to select the second ROI and so on? In other words, I want to select the ROIs with all the previous ROIs displayed on the image, is that possible?

NOTE:-

Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

There is no built-in function of ROIPOLY, that I know of, that will do this. So, you’ll need to alter your raw image to outline/overlay the regions you have selected. I’ve pasted below a simple loop using my outlining function MASKOUT. You might have better success using a more robust function from the File Exchange like IMOVERLAY.

You won’t be able to run this “as is”. You’ll need to point it to your raw image.

reply = input('Circle regions to [a]dd, [n]ext image? a/n [n]: ', 's');
if isempty(reply)
reply = 'n';
end
%loop for each ROI created
while reply == 'a'
im2 = imread(char(filenames(1, x))); %raw image
brtemp = false(size(im2, 1), size(im2, 2)); %binary mask of ROIs
timg = maskout(im2, brtemp, 2);
if reply == 'a' brtemp = roipoly(timg) | brtemp; %manual interaction to create ROI, add to BRTEMP
timg = maskout(im2, brtemp, 2); %display outline of all masks created
reply = input('Circle regions to [a]dd, [r]emove, [n]ext? a/r/n [n]: ', 's');
if isempty(reply) %default reply is N
reply = 'n';
end
end
end
function [imgout] = maskout(imgin, maskin, thickness)

SEE COMPLETE ANSWER CLICK THE LINK

--

--

Technical Source
Technical Source

Written by Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

No responses yet