File Exchange

image thumbnail

Multi ROI/Mask Editor Class

version 1.0 (5.95 KB) by

This Class allows you to easily define multiple regions of interest (binary masks) with a nice UI.

12 Ratings



View License

This is a class with a convenient user interface to define multiple region of interest (ROI) masks on a given image.

All the imroi tools (freehand, circle, rectangle, polygon) can be used to define these region(s).

Loading and storing of previously defined ROI masks to and from files is easily done via the UI toolbar.

Multiple regions are labeled using the connected component labeling method (using the MATLAB built-in bwlabel function).

Generated Information:
- Binary Mask (obj.roi)
- Label Mask (obj.labels)
- number of independent regions (obj.number)

You can listen to the object's "MaskDefined" event to retrieve the ROI information generated (obj.getROIData) or get them directly from the objects public properties.

Run the example to see how it works.

Comments and Ratings (17)


Thank you!

Cheng-Je Lee


Hi, Thank you for your great job. This is really nice.

I want to make multiple polygon ROIs in an image about 56 region but they join each ROIs.

For example. I drew 28 ROIs but only 11 ROI labels exist. When I check them in image, they joined in one ROI.

Peyman Obeidy

nice job, I have the same question as Fred, how can I add my ROI into the workspace, I need to calculate the area for different mask?

Weizhi Li


fred blue


How can I add my ROI on the workspace?


Yue Hou

Hi Jonas,
There is a bug for delete button at line 183:
"this.current = str2double(regexp(Tag,'\d','match'));"
If there are more than 10 ROIs, the delete button doesn't work for ROIs #10, 11, 12, etc.
so I correct it to
"this.current = str2double(regexp(Tag,'\d+','match'));"
And it works fine, now.


gilad (view profile)

hi Nizamettin,
If I understood you, after running the example, look at the ans.roi, and save it as a variable.

How can you extract the mask and obtain it as a variable in the workspace?



hamid (view profile)

thank you for your effort. i downloaded the file but after extracting i cant open it in matlab editor. it gives me the error of
"CROIEditor\example.m is not
a valid function name. This will generate an error in a future release.
> In open at 36
  In uiopen at 196 "

is there any suggestion
many thanks


Excellent, you have save me so much time!!
Really really good!


Felix (view profile)

very good!


zaidan (view profile)

nice code


Very nice tool and extremely helpfull.


Damien (view profile)

The tool itself is very convenient.
Many comments make the code easy to read.
Can also be used as a good tutorial for : GUI, Classes, imroi

I myself was in need of a more versatile tool. For exemple being able to save not only the binary mask but also the imroi shapes themself.
With such a funcionality you can reuse the shapes on another image and modify it if needed.
I implemented this funcionality in an enhanced version of your tool. I may submit it soon

Thiago Lima

Very good and easy to use.

MATLAB Release
MATLAB 7.12 (R2011a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video