Introduction
MATLAB is a software package designed for (among other things) data processing. It has a large amount of numerical algorithms, an intuitive script language and good datavisualization abilities. It is an ideal tool for rapid prototyping, since it uses a compact but simple notation, and it is very easy to add functions to it. All of this makes it a great basis for our toolbox DIPimage.
DIPimage is a MATLAB toolbox for scientific image processing and analysis. It is a tool for teaching and research in image processing. The principal design ideas behind the toolbox are:
 ease of use,
 simple expandability, and
 compact notation.
Most operations are independent of dimensionality, and are defined for any data type that MATLAB can store. Many functions are available through a GUI, which makes them more accessible to novices. The interactive image display windows, to which images can be automatically displayed after each operation, provide great insight into the image data.
Most image processing operations are deferred to DIPlib, a dedicated library written in C. In this way we extend MATLAB with new core functions, and thereby overcoming speed limitations of interpreted scrips. Due to the use of DIPlib, MATLAB is useful for image processing beyond the prototyping stage. Together, MATLAB and DIPimage yield a powerful workbench for working with scalar and vector images in any number of dimensions.
Using DIPimage
The MATLAB/DIPimage combination has been in use since the year 2000 at the Quantitative Imaging Group (formerly the Pattern Recognition Group), both as a research tool and as a teaching environment for all image processing courses offered by the group. It has since been adopted for research and teaching around the world.
We know from experience that novices accomplish a task quicker using DIPimage than using other imageprocessing environments. Image processing/analysis specialists prefer it over other packages, because they too can implement a new algorithm quicker and with less hassle. Being able to process measurement results without switching environments has also been noted as a big advantage.
Features
Graphical User Interface
 Contains most functions in the highlevel interface
 Easy parameter selection
 Useful for using unfamiliar functions
 Useful for novice users (who don't know the commands yet)
 Easy to add functions to
MATLAB Command Line
 Intuitive language
 Easy but powerful manipulation of images (images are encapsulated in an object, which makes using them more natural)
 Quick for calling familiar functions
 Seamless integration with other toolboxes and MATLABâ€™s own matrixprocessing and display functions
Image Visualization
 Automatic image display
 Interactive display for 1D, 2D, 3D and 4D, binary, greyvalue and color images
 Many interactive tools: pixel value examination, zooming, local orientation examination, linking of 3D displays, R.O.I. definition, cropping, ...
Image Manipulation
 Powerful indexing modes
for exaple: c(1:3:end,:) extracts one in every three columns from an image; and c(0,0)=100 sets the topleft pixel to 100
 Mask images (for R.O.I. processing)
for exaple: c(m) extracts the pixels selected by the mask
 Pixel arithmetic through operators, not functions
for exaple: c>100 thresholds the image at 100; c+d adds two images; and c/max(c) normalizes the image intensities
 Functions for shifting, scaling, rotating, ...
 Generation of bandlimited test objects
Image Processing
 Support for tensor and color images
 Support for many data types (binary, integer, floatingpoint, complex)
 Most functions are dimensionalityindependent
 Gaussian derivatives up to any order order (and of any dimensionality)
 Mathematical morphology (rectangular, elliptic, parabolic and arbitrary flat structuring elements)
 Many other filters: median, percentile, variance, Kuwahara, bilateral, ...
 Point operations: clip, stretch, histogram equalization, table lookup, ...
 Advanced tools such as greyweighted distance transforms, scale spaces, structure tensor, optic flow, ...
Image Analysis
 Large collection of measurement functions
 Onedimensional and multidimensional histograms
 Segmentation functions: threshold, Canny, watershed, ...
 Statistics and visualization of measurement results are easily done in MATLAB
 Seamless integration with PRTOOLS pattern recognition toolbox
Image File Support
 ICS (read and write)  images of any data type and any dimensionality
 TIFF (read and write)  2D images of any data type, greyvalue or color
 JPEG (read and write)  2D images with 8 or 16 bits per pixel, greyvalue or color
 GIF (read and write)  2D, 8bit greyvalue images
 Comma separated values (read and write)  2D greyvalue images only
 Zeiss LSM (read)  Zeiss confocal microscope images
 BioRad PIC (read)  BioRad confocal microscope images
 AVS FLD (write)  images of any data type and any dimensionality
 Postscript (write)  2D, 8bit images, greyvalue or color
 ...plus all image file types supported by MATLAB

