File Exchange

image thumbnail


version (644 KB) by

A GUI for viewing and interactively exploring image files.



View License

Editor's Note: This file was selected as MATLAB Central Pick of the Week

IMAGEVIEWER Interactively pan and zoom images on the computer.
IMAGEVIEWER starts a GUI for opening image files and interactive panning and zooming.

IMAGEVIEWER(DIRNAME) starts the GUI with DIRNAME as the initial directory.

The GUI allows you to navigate through your computer and quickly view image files. It also allows you to interactively explore your images by panning (clicking and drag), zooming (right-click and drag), and centering view (double-clicking).

This is implemented using MATLAB Classes. It requires MATLAB R2008a or newer.

Comments and Ratings (16)

Ilya Belevich


Liwei (view profile)

Excellent tool. It works for my Matlab 2013a WIN64 BIT. I have a question: I want to add displaying the boundingboc and detected areas on the image. Can this be compiled as a matlab standalone application?



Jeff (view profile)

Attempted to install APP and run in MATLAB Version (R2013a)...

GUI starts up and allows a directory selection, but causes MATLAB to crash non-gracefully shortly after the list of files is populated.

Has anyone else experienced this behavior and is there a preventative fix?



Gilles (view profile)

In order to use interactive pan and zoom with the matlab preview fcn of live video data, I added the Update Preview Function. Each time preview receives a video frame, it calls the update preview window function that I specified, which can process the data before displaying (see this example :

However, this example uses the setappdata function to configure this application-defined data to a function handle to the update preview window function. I don't know how I define the arguments (using matlab classes) of the update preview window function because it passes an Event Attribute.


Gilles (view profile)

Thank you ! ImageViewer is an excellent GUI implemented using matlab classes !
I try to use interactive panning and zooming with the matlab preview fcn of live video data.
I coded that :

% --- Executes on button press in Preview.
    function PreviewFcn(varargin)
        camobj = obj.camobj;
        vidRes = get(camobj, 'VideoResolution');
        imWidth = vidRes(1);
        imHeight = vidRes(2);
        nBands = get(camobj, 'NumberOfBands');
        % create an empty image container and show it on axPreview
        iH = image(zeros(imHeight,imWidth, nBands), 'parent', obj.handles.ImageAxes);
        preview(camobj, iH);

Zoom seems to work on live video data, but pan doesn't work.
Could you help me?


Gilles (view profile)


Gilles (view profile)


mhmmrm (view profile)

not so much handy enough,try to add some extra features.:D

Jiro Doke

Tim Tam,
I didn't code it so that you can extract the selected file name through the handles. Also, I made the GUI "HanldeVisibiltiy" to "off" on purpose so that it can't be accessed from the Command Window. That's why "gcf" and "gca" doesn't see it.

If you need to access the inner workings, I suggest you take a look inside the m-code. When I create the initial figure, I set the "HandleVisibility". You can change that to "on". Also, there's a place in the code that I extract the file name from the list box.

Tim Tam

How can one retrieve the name of the image file that the user has selected ?
I've tried returning then querying various handles, but can't get any approach to work.
Also gcf and gca don't seem to work with the viewer - when issued they create new figures / axes.

Edward Chao

Excellent examples of using the object callbacks (ButtonDownFcn, WindowButtonMotionFcn, WindowButtonUpFcn) for panning and zooming. I was looking for some good examples for a long time. Thank you very much!

Martin Fon

This is a very good job. Could it be used for cropping?

Tamir Suliman

Thats a very nice job great

Luis Nieto

Excellent job, works fine in R14 too.

Christian Schultes

It works very well with R14SP1 - I am very impressed. Thank you!
Very soon I do need only Matlab - when is the Office tool available to replace Word?

Jiro Doke

The program currently does not work on certain images. A new version will be posted in the next couple of days. Thanks.


Updated license


Updated to include an App file for R2012b


Implemented in MATLAB Classes


Copyright update. Added scroll wheel zoom.

Bug fix for image centering feature. Also allow the window to be resized (without distortion of components)

Bug fixes. Make sure it works with various image types.

It actually works in R14 or later.

MATLAB Release
MATLAB 8.0 (R2012b)

Inspired: Microscopy Image Browser (MIB)

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

» Watch video