2 views (last 30 days)
Image Analyst on 17 Dec 2011
Try GUIDE - that's what I use. Here is a nice framework/template to get you started: http://www.mathworks.com/matlabcentral/fileexchange/24224-magic-matlab-generic-imaging-component
This GUI will help the novice user get up to speed very quickly on using GUI-based applications. Everything is laid out in a very simple Step 1, Step 2, Step 3, etc. layout. It is a very good starting point for a typical image analysis application. This application uses GUIDE to do the user interface design, and has most of the basic controls such as buttons, listboxes, checkboxes, radio buttons, scrollbars, etc. It allows the user to select a folder of images, select one or more images and display them, to select a series of options, and to individually or batch process one or more images. The user can optionally apply a mask (region of interest) to the image so that only the area within the mask will be analyzed. The results are optionally sent to Excel. In this demo, I do some very basic particle sizing but in use, the user would replace that simple demo code in the function AnalyzeSingleImage() with their own code. Works with Windows or Unix since paths are all forward slashes. Requires the Image Processing Toolbox to do the simple particle sizing demo, but if you delete that demo code before using it, then the IP toolbox would not be required and it would still demonstrate the basic GUI-based file processing functionality.
Malcolm Lidierth on 17 Dec 2011
I prefer to keep the GUI and its support code separate from the data processing chain which GUIDE is not good at (in my hands anyway when I last used it about 10 years ago). That means the data processing functions are not embedded in GUI code and remain available at the command line or within code that does not use the GUI.
But GUI-based GUI designers can be useful. If you want to use an external GUI designer such as one of the many free designers in Eclipse, NetBeans, IntelliJ etc and just import the Java Swing-based GUI into MATLAB, you could use the GImport class that I posted to the FEX yesterday:
This allows imported GUIs to be added to uipanels inside MATLAB figures and wraps the GUI in a GImport instance - a custom MATLAB class that wraps the GUI and has many methods to support further programming in MATLAB - although they can of course often be implemented in the Java code instead. The GImport class also implements layout management so you get MATLAB-style 'normalized' resizing of the GUIs.
A further advantage, is that if the GUIs are developed in Java - they can be deployed/re-used easily in a stand-alone application.
GImport is part of Project Waterloo and the full library is available from