Image Processing Toolbox

Key Features

  • Image analysis, including segmentation, morphology, statistics, and measurement
  • Image enhancement, filtering, and deblurring
  • Geometric transformations and intensity-based image registration methods
  • Image transforms, including FFT, DCT, Radon, and fan-beam projection
  • Large image workflows, including block processing, tiling, and multiresolution display
  • Visualization apps, including Image Viewer and Video Viewer
  • Multicore- and GPU-enabled functions, and C-code generation support

Exploration and Discovery

Image Processing Toolbox supports images and video generated by a wide range of devices, including webcams, digital cameras, satellite and airborne sensors, medical imaging devices, microscopes, telescopes, and other scientific instruments. You can use functions and apps to visualize, analyze, and process these images in many data types.

With Image Acquisition Toolbox™ you can acquire live images and video from frame grabbers, GigE Vision cameras, DCAM cameras, and other devices.

Image Processing Made Easy The abundance of cameras has created overwhelming amounts of image and video data, and the demand for image processing has only increased in order to decipher and understand the data.

Standard and Specialized File Formats

MATLAB® supports standard data and image formats including:

  • AVI
  • JPEG
  • JPEG-2000
  • FITS
  • HDF
  • M4V
  • MOV
  • MP4
  • PNG
  • TIFF
  • Binary files
  • Microsoft® Excel®

It also supports the multiband image formats BIP and BIL, as used by LANDSAT. Low-level I/O and memory mapping functions enable you to develop custom routines for working with any data format.

Image Processing Toolbox supports a number of specialized image file formats. For medical images, it supports DICOM files, including associated metadata, as well as the Analyze 7.5 and Interfile formats. The toolbox can also read geospatial images in NITF files and high dynamic range images in HDR files.

Apps for Exploration and Discovery

The toolbox provides a suite of image processing apps to explore and discover various algorithmic approaches. With the Color Thresholder app, you can segment an image based on various color spaces. The Image Viewer app lets you interactively place and manipulate ROIs, including points, lines, rectangles, polygons, ellipses, and freehand shapes. You can also view pixel information, pan and zoom, adjust contrast, and measure distances. Alternatively, you can perform these tasks programmatically and use individual functions to create custom interfaces.

Image Enhancement

Image enhancement techniques in Image Processing Toolbox enable you to increase the signal-to-noise ratio and accentuate image features by modifying the colors or intensities of an image.

The toolbox includes specialized filtering routines and a generalized multidimensional filtering function that handles integer image types, offers multiple boundary-padding options, and performs convolution and correlation.

Using predefined filters and functions you can:

Enhancing Multispectral Color Composite Images  (Example) Constructing color composites to highlight and segment vegetation in satellite imagery.

Morphological Operators

Morphological operators enable you to enhance contrast, remove noise, thin regions, or perform skeletonization on regions. Morphological functions in Image Processing Toolbox include:

Texture Segmentation Using Texture Filters  (Example) Identifying regions of different textures using entropy measurements and morphological operations.

Image Deblurring

Image deblurring algorithms in Image Processing Toolbox include blind, Lucy-Richardson, Wiener, and regularized filter deconvolution, as well as conversions between point spread and optical transfer functions. These functions help correct blurring caused by out-of-focus optics, movement by the camera or the subject during image capture, atmospheric conditions, short exposure time, and other factors.  All deblurring functions work with multidimensional images.

Deblurring Images Using the Blind Deconvolution Algorithm  (Example) Restoring an image when no information about the distortion is available.

Image Analysis

Image analysis is the process of extracting meaningful information from images such as finding shapes, counting objects, identifying colors, or measuring object properties.

Image Processing Toolbox provides a comprehensive suite of reference-standard algorithms and visualization functions for image analysis tasks such as statistical analysis, feature extraction, and property measurement.

Image Transforms

Image transforms play a critical role in many image processing tasks, including image enhancement, analysis, restoration, and compression. Image Processing Toolbox provides several image transforms, including Hough, Radon, FFT, DCT, and fan-beam projections. You can reconstruct images from parallel-beam and fan-beam projection data (common in tomography applications).

Image transforms are also available in MATLAB and Wavelet Toolbox™.

Reconstructing an Image from Projection Data  (Example) Comparing the reconstruction of an image using parallel (Radon) and fan-beam geometries.

Hough Transform

The Hough transform is designed to identify lines and curves within an image. Using the Hough transform you can:

  • Find line segments and endpoints
  • Measure angles
  • Find circles based on size

Statistical Functions

Statistical functions let you analyze the general characteristics of an image by:

Device-Independent Color Management

Device-independent color management enables you to accurately represent color independently from input and output devices.  This is useful when analyzing the characteristics of a device, quantitatively measuring color accuracy, or developing algorithms for several different devices. With specialized functions in the toolbox, you can convert images between device-independent color spaces, such as sRGB, XYZ, xyY, L*a*b*, uvL, and L*ch.

Image Segmentation

Image segmentation algorithms determine region boundaries in an image. You can explore many different approaches to image segmentation, including progressive methods, automatic thresholding, edge-based methods, and morphology-based methods such as the watershed transform that is often used to segment connected objects.

Color-Based Segmentation with Live Image Acquisition Acquire an image and perform image analysis to find small objects, count them, and differentiate them by color.

Edge Detection

Edge-detection algorithms let you identify object boundaries in an image.  These algorithms include the Sobel, Prewitt, Roberts, Canny, and Laplacian of Gaussian methods. The Canny method can detect true weak edges without being fooled by noise.

Edge Detection with MATLAB Edge detection can be a versatile and powerful image processing tool. See the type of problems edge detection can help solve and view a detailed example in MATLAB®.

Morphological Operators

Morphological operators enable you to detect edges, segment an image into regions, or perform skeletonization on regions. Morphological functions in Image Processing Toolbox include:

Image Registration and Geometric Transformations

Image registration is important in remote sensing, medical imaging, and other applications in which images must be aligned to enable quantitative analysis or qualitative comparison. Image Processing Toolbox supports intensity-based image registration, which automatically aligns images using relative intensity patterns.

The toolbox also supports control-point image registration, which requires the manual selection of control points in each image to align two images.

Additionally, Computer Vision System Toolbox™ supports feature-based image registration, which automatically aligns images using feature detection, extraction, and matching followed by geometric transformation estimation.

Introduction to Geospatial (Mapping) Analysis using MATLAB This session provides an overview of using MATLAB for geospatial image and data analysis. Using imagery acquired from USGS Web Services, we will demonstrate the development and application of an…

Intensity-Based Image Registration

Intensity-based image registration maps specific pixels in separate images based on relative intensity. This registration technique is often well suited for medical imagery when it’s necessary to automate large collections of images.

Control-Point Image Registration

Control-point image registration requires the manual selection of control points in two images in order to align them. This method of registration is best suited for images that have distinct features such as satellite imagery.

Geometric Transformations

Geometric transformations are useful for tasks such as rotating an image, reducing its resolution, correcting geometric distortions, and performing image registration. Image Processing Toolbox supports simple operations, such as resizing, rotating, and cropping, as well as more complex 2D geometric transformations, such as affine and projective.

The toolbox also provides a flexible framework for creating and applying customized geometric transformations and interpolation methods for N-dimensional arrays.

Large Image Processing and Performance Acceleration

Image Processing Toolbox provides workflows specifically for working with large images that are difficult to process and display with standard methods. You can create a reduced-resolution data set (R-Set) that divides an image into spatial tiles and resamples the image at different resolution levels without loading a large image entirely into memory. Using this workflow improves image display and navigation performance. You can use a block processing workflow to apply a function to each distinct block of a large image, significantly reducing memory use.

GPU Acceleration

To take advantage of the performance benefits offered by graphics processing units (GPUs), many image processing functions are GPU-enabled to accelerate computationally intensive workflows. Use Parallel Computing Toolbox™ to improve performance with GPUs and multicore processors.

Target Hardware

By using Image Processing Toolbox with MATLAB Coder™, Vision HDL Coder™, and HDL Coder™, you can generate C, C++, and HDL code directly from MATLAB. Many image processing functions support code generation, allowing you run image processing algorithms on PC hardware, FPGAs, and ASICs. This enables you to develop imaging systems for the medical, aerospace, and defense fields.

Connect MATLAB and Simulink to Hardware

Explore hardware support