Code covered by the BSD License  

Highlights from


4.9 | 15 ratings Rate this file 114 Downloads (last 30 days) File Size: 402 KB File ID: #40440
image thumbnail




21 Feb 2013 (Updated )

4D/3D image visualization and evaluation GUI.

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

| Watch this File

File Information

Comfortable, powerful and intuitive visualization of 3D images and even multiple 3D images in one window (4D using multiple panels). Supports image evaluation features such as line evaluation and region of interest (ROI) evaluation. Users can write their own evaluation functions to make tailord image analysis in a comfortable and powerful framework.
Now with app file.

Comes with a documentation pdf-file.

Feature highlights:
- Supports real-time continuous image zooming and adjustment of brightness and contrast using simple mouse moving operations.
- Adapt the GUI layout and the number of panels to your needs.
- Displays up to 16 3D-images simultaneously.
- Shows image intensity and coordinates at current cursor position.
- Link multiple 3D views or operate on individual views separately.
- 3D images can be rotated in 90 degree steps around all axes.
- Image evaluation along lines.
- Image ROI evaluation.
- Write your own evaluation function and easily incorporate into the framework.
- Save stacks of images to image files using the current contrast/brighness settings.
- Colormaps

Required Products MATLAB
MATLAB release MATLAB 7.14 (R2012a)
Other requirements Should work on a wide range of MATLAB versions. Requires image processing toolbox.
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (25)
18 Sep 2014 Ibraheem Al-Dhamari

I tried to load DICOM images but I get this error:
Undefined function or variable "SNewData".
Error in imagine/fLoadFiles (line 1465)
for i = 1:length(SNewData)
Error in imagine/fMenubarClick (line 475)
SNewData = fLoadFiles(csFilenames);
Error while evaluating image ButtonDownFcn
Is it not supported?

21 Jul 2014 Patrick  
18 Apr 2014 Charles  
10 Apr 2014 t zq


08 Apr 2014 Christian Baumgartner

I really enjoy working with your submission. Works perfectly, easy to understand and really nice UI. Well done!

02 Apr 2014 Trung

Sorry, I have figured it out. Holding right mouse button or using "Ctrl + left mouse" would allow the zoom function.

02 Apr 2014 Trung

This is a great app. However, I am unable to zoom. Is there anyone having the same problem or how can I zoom my imported images in the GUI of this app?

26 Feb 2014 Ta Hai

nice job! thank you

16 Dec 2013 francesco

very great tool, either more interactive! :)

04 Dec 2013 Tobias Haushahn  
23 Sep 2013 Michael  
23 May 2013 Martin  
05 May 2013 Paul Andrews  
12 Apr 2013 Arindam Bose  
06 Apr 2013 Christian Wuerslin

Hi Jiro,

OK, I think I'm starting to get the idea of the difference between app and function :). So the next version of the app will simply return the figure handle to comply with the specs.

Thanks for the publicity <3

05 Apr 2013 Jiro Doke

Yes, I think what you're doing makes sense if people are using your app from the command line. The App, on the other hand, is used through the Apps tab, so there won't be a use case of having an output argument anyway. Because of that, I think you can just remove that capability when packaging.

Great tool. BTW, I highlighted your entry on the File Exchange Pick of the Week:

05 Apr 2013 Christian Wuerslin

Hi Jiro,

wow, thanks for the thorough investigation. Would have taken me forever to figure that out. Well, I was trying to give people the possibility to add arbitrary plots (e.g. quiver, lines) to the axes and thus introduced the axes handle output. Since the axes are destroyed when the panel leyout is changed, I disabled this feature when the axes handles are returned. I guess I have to think of something different for the app. Thanks for your suggestions!



04 Apr 2013 Jiro Doke


I think I know what's going on. When you create an App, MATLAB checks to see if your function has an output argument or not. If it does, it will call "imagine" with an output argument. I see that in your code, you disable the ability to change the number of axes when "nargout" is 1.

Just as a note: as you can see from the documentation for Apps (the Tips section)

MATLAB assumes that the output from your function is a figure handle, and that's how it detects whether the figure has closed or not.

A fix would be to use a slightly different version of "imagine" for the App version, and not disable the multi-axes option. You can also output the handle of the figure, as opposed to the handle of the axes.

04 Apr 2013 Christian Wuerslin

Hi Jiro,

thanks for the feedback and making me aware of the bug. I can't test it at the moment and I am a bit puzzled why this error ocurres since the app uses the same m-file as the normal submission, which works fine (at least for me). I'll fix it as soon as I get to my 2012b workstation.

03 Apr 2013 Jiro Doke

Great tool, Christian!

I noticed that the App version has the "Panel Layout" button disabled, and I can't change the layout to show multiple frames.

I really like the interface and the look&feel of the App!

27 Feb 2013 Ronald  
25 Feb 2013 Christian Wuerslin

Hi Roland,

concerning the error: I must have accidentially changed the name of the subfolder "EvalFucntions" to "EvalFunctionsf". Rename this folder and it should work; I will also upload a fixed version asap.

The slice number is shown in the upper left corner of each image panel (since the panels might show different slices) togehter with the total number of slices.

To put the tooltip in the upper left corner is a good idea, I will incorporate that.

Thanks for your feedback!


25 Feb 2013 Ronald

Nice submission!
I encountered one error, Imagine cannot use the find the fEvalLineFWHM function (it is not on the path). Should be easy to fix.

Also some nice additions would be:
- show a tooltip for the buttons (or a text at the location where not the position and pixel value is shown).
- add the slice position instead of only showing x and y.

22 Feb 2013 Thomas

Best MRI image visualization tool!

22 Feb 2013 Thomas  
21 Feb 2013

Whoops, forgot the icons in the initial upload :S

26 Feb 2013

V 1.1 changelog:

- Fixed wrong subdirectory name.
- Subdirectory for evaluation functions is automatically added to path.
- Added Tooltips

20 Mar 2013

V 1.2 changelog:

- Documentation included
- Changed GUI architecture
- Added comments
- Some bugfixes
- Line profiles show captions
- Return axes handles

21 Mar 2013

V 1.2 changelog:

- Documentation included
- Changed GUI architecture
- Added comments
- Some bugfixes
- Line profiles show captions
- Return axes handles

21 Mar 2013

New icons.

27 Mar 2013

Fixed bugs in zooming and file opening operations.

03 Apr 2013

V 1.4 changelog:

- Added app
- Added save to file feature

09 Apr 2013

^^ Typo ^^
This is still V 1.3. App returns figure handle and allows layout change.

24 Apr 2013

V 1.4 Changelog:
- Added colormaps
- Added colorbar option
- Added evalbar option
- Better zooming operation

Contact us