Steve on Image Processing with MATLAB

Image processing concepts, algorithms, and MATLAB

Five years of MATLAB changes related to image processing

Digital Image Processing Using MATLAB has three coauthors, and we are each responsible for different aspects of writing and other book-related activities. One of my responsibilities is to keep track of changes in MATLAB and Image Processing Toolbox that might affect the book. I look for new features that we might want to mention, as well as behavior changes that might affect existing text in the book.

I was looking at my lists recently and thought they might be interesting to publish here. I normally write about new features in the blog, but I do it one release at a time. We published the first edition of the book in late 2003, so looking at all of my lists gives you a birds-eye view of what's been happening in the products over a five-year period.

Today I'll post my MATLAB lists, and later in the week I'll post my Image Processing Toolbox lists. Note that these lists are not comprehensive; they contain only the items that I thought might be relevant to some topic in the book.

Here's my challenge to readers: Scan these lists and find the oldest "new" feature that you didn't already know about, preferably something that might be useful to you. Let us know about your find by commenting on this post.

Version 7.0

  • Single precision support
  • uipanels
  • dockable figures
  • array editor for viewing structures (useful in compression chapter?)
  • Cell mode and publishing tool
  • Conditional breakpoints
  • Directory reports (code quality issues; todo list; etc.)
  • M-Lint code-checker tool
  • Nondouble arithmetic
  • Single precision linear algebra
  • Single precision FFTs
  • class input for eps function
  • class inputs for realmax, realmin
  • new functions intmax, intmin
  • class inputs for ones, zeros, eye
  • class and size inputs for Inf, NaN
  • isfloat
  • isinteger
  • accumarray
  • mode argument for sort
  • new trig functions for inputs in degrees
  • new calling syntax for function handles
  • anonymous function handles
  • nested functions
  • isscalar
  • isvector
  • strtrim
  • textscan
  • expanded regular expression functions
  • bit functions on unsigned integers
  • compressed MAT-files
  • ftp functions
  • interactive plotting tools
  • data cursors
  • plot annotation (with MATLAB code generation)
  • hggroup
  • hgtransform
  • linkprop
  • axes OuterPosition and TightInset properties (may be useful for fine-tuning plot positioning in our book)
  • GUIDE changes: panels, button groups, ActiveX support, toolbar component, menu editor, key-press detection, edit-text, scroll bar, focus setting
  • uiwait - timeout argument

Version 7.1

  • new function hypot - square root of sum of squares
  • new function mode - most frequent values in sample
  • new function arrayfun - applies a given function to each element of an array. Especially useful for arrays of structures. (possibly useful with regionprops)
  • new function exifread - reads EXIF information from JPEG and TIFF image files
  • new function structfun - applies a given function to each field of a structure
  • new function swapbytes - swaps byte ordering
  • new function typecast - converts data types without changing underlying data
  • cellfun - modified to be able to apply a user-specified function to each element of a cell array
  • Plot Tools enabled on Macintosh
  • Time-series analysis tools

Version 7.2

  • New function idivide provides division similar to A./B on integers except that fractional quotients are rounded to integers according to a specified rounding mode
  • New features for regular expressions:
    dynamic regular expressions (insertion of MATLAB expressions into regular expressions or replacement strings)
    New function for generating literals
    New parsing modes (case-sensitive, single-line, multiline, freespacing)

Version 7.3

  • New MAT-file format capable of storing data larger than 2 GB. Not on by default; must be selected
  • Data cursor text can be programmatically modified
  • Creating GUIs - details and documentation significantly updated
  • mwSize and mwIndex types for use in MEX-file programming

Version 7.4

  • Get online URL of displayed page in help browser
  • Create searchable database for your own toolbox's HTML help files.
  • bsxfun (definitely useful - may want to replace all uses of repmat in DIPUM with calls to bsxfun)
  • divide-by-zero and log-of-zero warnings now off by default
  • new function assert
  • new function verLessThan
  • new inputParser class
  • More GUIDE changes

Version 7.5

  • Help on selection (editor)
  • Code folding in editor - worth recapturing editor screenshots if we have any
  • new function maxNumCompThreads (may want to mention multithreaded computation in MATLAB intro chapter)
  • new 'split' option for regexp
  • new error handling ability - MException - plus related changes to catch
  • new multimedia file reader - mmreader
  • imread has several TIFF-related enhancements:
    LZW, Deflate, and JPEG compression support
    Arbitrary combinations of samples-per-pixel and bits-per-sample
    Increased performance when using 'PixelRegion' parameter. (Might want to have a DIPUM example showing how to read a subset of a TIFF image.)
  • GUIDE changes - custom toolbar editor, icon editor, coordinate readout in layout editor, documentation on how to make GUIDE GUIs interact

Version 7.6 (R2008a)

  • Camera EXIF information incorporated into output from imfinfo
  • FFT functions no longer warn on uint8 input
  • Support for JPEG-2000 import

Version 7.7 (R2008b)

  • Find function names and get help using new function browser
  • View syntax hints while entering statements
  • New formats supported for imread:
    JPEG 2000

Version 7.8 (R2009a)

  • Performance improvements for low-level HDF 5 interface
  • Support for HDF 1.8.1
  • Performance improvement for JPEG 2000 import
  • New syntax for faster reading of TIFF files containing many images
  • New computational geometry classes TriRep, DelaunayTri, TriScatteredInterp
  • New functions now multithreaded: fft, fft2, fftn, ifft, ifft2, ifftn, prod, sum max, min
  • Some Image Processing Toolbox functions moved into MATLAB: rgb2ind, dither, cmunique, cmpermute, imapprox
  • print
  • send email


To leave a comment, please click here to sign in to your MathWorks Account or create a new one.