Imagine is back! Comfortable, powerful and intuitive visualization and evaluation of 3D or 4D data (e.g. x-y-z-t). Version 2.0 has an improved rendering engine for better contrast, supports complex data (magnitude/phase) and can show projections. It also supports the direct import of numerous (medical) file formats. Supports evaluation along lines, of regions of interest (ROI) and volumes of interest (VOI) using an easily extendible evaluation framework. ROI and VOI drawing is assisted by livewire (2D), region growing and isocontour function (both 3D). Comes with a documentation pdf-file.
- Smooth image zooming and adjustment of brightness and contrast using simple mouse operations.
- Import data directly from MATLAB workspace, mat-, DICOM-, NifTy-, GIPL- and standard image files.
- Displays intensity/magnitude, phase or minimum/maximum intensity projections.
- Powerful image evaluation features.
- 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.
- Write your own evaluation function and easily incorporate into the framework.
- Save stacks of images to image files using the current contrast/brighness settings.
I use imagine a lot and I think it's a great tool. However, I just upgraded to OSX Yosemite and I had to get Matlab R2014. The new imagine version works but the mouse scroll function to explore through slices seems to be broken. Here is the message I get when I try to use it:
Error while evaluating Figure WindowScrollWheelFcn
Undefined function 'plus' for input arguments of type 'matlab.ui.eventdata.ScrollWheelData'.
I see the problem. The file is in the subfolder "Colormaps", but I only add that folder to the path a few lines later. I will upload a fixed version soon (along with some other bugfixes). Until then, you can either add the imagine subfolders to the path manually or move the block that is commented "Set some paths" up a few lines such that they are executed before the "load('mylines.mat');" command.
Sorry and thanks for letting me know.
Loved the original release. Use it for quick visualization all the time.
Just downloaded v2, but when I try to run the imagine function it errors on line 120 trying to load mylines.mat which doesn't exist. Am I missing something obvious? Or could this be a version issue?
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?
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:
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!
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.
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.
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.