File Exchange

image thumbnail


version (11.3 KB) by Laszlo Balkay
Interactive roi definition tool


Updated 25 Feb 2008

View License

ROITOOL enables to define different type of rois on images (intensity, RGB) by mouse. The supported types are 'polygon', 'circle' and 'rectangle'. ROIPOLY returns the handler of the line object relating
to the roi. The created roi can be dragged and moved to any position of the image with the help of DRAGGABE function (developed by Francois Bouffard, see the help of draggable).

ROITOOL generates a context menu to the roi making possible the selection of the following commands:(MATLAB displays the context menu whenever you right-click over the object)

- change the roi color
- change the size of the line width
- switch on/off the 'statistical bar', which displays the main stat. results of the roi (mean, std, min, max, roi area)
- switch on/off the 'histogram figure', which shows the intensity histogram of the pixels belonging to the roi
- switch on/off the 'detailed rectangle' figure, which plots the zoomed image segment defined by the rectangle roi
- resize the roi (in case of circle or rectangle roi)
- delete the roi

ROITOOL('circledemo'), ROITOOL('rectangledemo') or ROITOOL('polygondemo')

start the roi definition using the MATLAB 'MRI' data set.

Installing, running: unzip the downloaded file and include them to your matlab path

Cite As

Laszlo Balkay (2020). roitool (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (12)


yes, so many great old tools are broken in the newer versions. Too bad Mathworks didn't care for backward compatibility.

addRoiToolbar is broken too.


Does not work in Matlab 2015 anymore. Brings an error

Undefined function 'real' for input arguments of type ''.

It is very good!!! Thanks a lot.

I am trying to figure this code. I am having the error
Error using ==> roitool at 76
ROITOOL expects a current figure containing an image.

Please help me in this regard



I've tried this around a week ago and it's great. I would like to retrieve the histogram data, anyway I could do this? (pixels values in the area chosen)

Comment to Winnie: You can get the ROI handler issuing (for example) ">> roi_handler = roitool('circledemo');" and the ROI coordinates can be import by "x = get(roi_handler,'Xdata');
y = get(roi_handler,'Ydata');"


I tried this tool today, but I could not retrieve the output. All it gave me was a single number... Any ideas? I need an output telling me the ROI co-ordinates!

Gal Haspel

did not work at first. error when calling "var". I had to change lines 286 and 370 to
roistd = std(double(userdata.currentimage(pixel_range)));

after that, it's useful and nice. thanks a lot!

Laszlo Balkay

Comments to

The POLY2MASK sub-function is part of the image processing toolbox, which is required for ROITOOL. (see the detailed description above)


the POLY2MASK sub-function is undefined, why?
help please!


what sure i put in for arg1,2 and 3? help, please


ROI definition can be done on RGB image also. Some bugs has been fixed.

MATLAB Release Compatibility
Created with R14SP2
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired by: draggable