Steve on Image Processing and MATLAB

Concepts, algorithms & MATLAB

Five years of Image Processing Toolbox changes 9

Posted by Steve Eddins,

Earlier this week I wrote about the lists I keep of MATLAB and Image Processing Toolbox changes that might be relevant to the material in Digital Image Processing Using MATLAB. I've been keeping these lists since we published the first edition, so they cover about five and a half years of software evolution.

I posted my MATLAB lists on Monday. Today I'm posting my Image Processing Toolbox lists. Note that these lists are not comprehensive; I noted only those items that I thought might be relevant to what's in the book.

As before, my challenge to readers is to find the oldest "new" feature you didn't know about before, preferably something that might be useful in your work. Let us know what you found by commenting on this post.

Version 3.1

  • New function stretchlim - computes "nice" limits for use with imadjust

Version 3.2

  • imfill - no longer requires the 'holes' argument for grayscale images

Version 4.0

  • imview - new image display and navigation - superseded by imtool in version 5.0
  • overview window
  • pixel region tool
  • magnification control
  • Import ICC color profiles
  • Support for XYZ, xyY, uvL, u'v'L, L*a*b*, L*ch, sRGB color spaces
  • adapthisteq - adaptive histogram equalization - works much better than histeq as an "all-purpose" image enhancement tool
  • decorrstretch - decorrelation stretch
  • fanbeam geometry for projections and inverse projections
  • bwboundaries (boundary tracing)
  • bwtraceboundary
  • uintlut - superseded by intlut in version 5.0

Version 4.1

  • Reading and writing L*a*b* data in TIFF files

Version 5.0

  • Modular programming with GUI components
  • Contrast adjustment tool, called "window-level" tool by radiologists
  • imgetfile - image file chooser dialog
  • hough, houghpeaks, houghlines
  • entropy
  • entropyfilt
  • graycomatrix
  • graycoprops
  • rangefilt
  • stdfilt
  • iccwrite - export ICC color profiles
  • intlut - replaced uintlut
  • edge - new syntax for returning computed gradient
  • graythresh - added Otsu's class separation metric
  • imfilter - automatically exploits filter separability
  • regionprops - new 'perimeter' measurement
  • imdilate, imerode, imopen, imclose - substantial speed improvement for large rectangular strels; computation speed is now independent of the size of the strel

Version 5.1

  • Support for new medical image file formats: Analyze 7.5 and Interfile
  • Image Tool enhancement - new distance tool (imdistline) for measuring the distance between any two points
  • New GUI building blocks: impoint, imline, imrect
  • New ICC utility functions: iccroot and iccfind
  • New section in Users Guide on working with image sequences

Version 5.2

  • Support for additional ICC profile types: DeviceLink, ColorSpace, Abstract, Grayscale
  • Mouse pointer management functions for GUI programming (iptPointerManager, etc.)

Version 5.3

  • 'symmetric' option for graycomatrix, for consistency with Haralick '73 definition.
  • ICC support extended to parametric curve types, and reading named colors in profiles

Version 5.4

  • imresize runs faster, uses less memory, supports new interpolation types, output size options, antialiasing control, user-defined interpolation kernels
  • applycform uses tetrahedral interpolation
  • watershed transform uses new algorithm (watershed section may need updated algorithm description)
  • 'none' option for iradon for unfiltered backprojection

Version 6.0

  • New interactive video / image sequence viewer
  • Cropping added to imtool
  • Bayer demosaic function
  • Multiresolution pyramid function
  • New tools for building GUIs (imsave, imputfile)
  • New ROI tools (impoly, imellipse, imfreehand)
  • Support for NITF (National Imagery Transmission Format) import
  • Support for HDR (high dynamic range) image import
  • tonemap function for HDR images
  • Faster bwmorph
  • Faster imfilter for uint8 RGB images

Version 6.1 (R2008a)

  • Create and export high dynamic range (HDR) images
  • Measure grayscale properties with regionprops
  • Enhanced methods for ROI functions
  • Convert between sRGB and CMYK
  • ICCWRITE can create smaller files in some cases
  • New transformation types in cp2tform:
    'nonreflective similarity'

Version 6.2 (R2008b)

  • Faster performance for:
    Binary erosion and dilation
    Range filtering
  • New function cornermetric for corner detection
  • New createMask method for ROI functions

Version 6.3 (R2009a)

  • New function bwconncomp does connected components labeling using less memory
  • New function labelmatrix
  • imfilter now multithreaded
  • Display and navigation of very large images using R-Sets (multiresolution pyramid files) generated using new function rsetwrite
  • Toolbox preferences now set using MATLAB preferences panel and saved between sessions
  • End-point and branch-point detection added to bwmorph
  • Subimage import using nitfread


Comments are closed.

9 CommentsOldest to Newest

StephenLL replied on : 1 of 9
Here is a change for the image processing toolbox I'd like to see: Having demoed the image processing toolbox in the past, I suggest that the function padarray be added to base MATLAB. It is on par with the usefulness of repmat. I could see every MATLAB user benefit from it. Just my 2cts. Stephen
Steve replied on : 2 of 9
StephenLL—Thanks for the suggestion. I think I'll write a short post about moving functions from Image Processing Toolbox into MATLAB, maybe today or tomorrow.
Steve replied on : 3 of 9
StephenLL—PS. repmat was one of the earliest functions I ever wrote at MathWorks. Of course, it's been modified a zillion times since then.
Renata Caminha replied on : 6 of 9
Hi Steve. My suggestion is about documentation of color spaces transformation. For example, I'm looking for RGB to CIELUV color space conversion. I found in Matlab a color space named u'v'L, but I'm not sure it corresponds to CIELUV color space. I didn't find other references to this color space as u'v'L as I found in Matlab. The only motivation that makes me think that I'm thinking of the same color space is that u'v'L is referred somewhere in help as a 1976 CIE color space.