The title of this book really describes its contents. It is about image processing, which relates to many different disciplines including computer science, mathematics, signal processing, photography, and the arts, as well as many different application areas. Tanimoto describes the main concepts, techniques, and applications of image processing, and presents several examples, from the concepts of pixels, images, and color components to image manipulation techniques based on mathematical functions, and Python programming. The practical aspects and resources associated with this book distinguish it from similar books. It provides excellent teaching support material.

PixelMath2012, the software used in the book, can be obtained from the book’s Web site (http://pixels.cs.washington.edu), along with many examples. PixelMath is written in Java and uses Python scripting; runs on Windows, Macintosh OS X, and Linux; and is provided free of charge for noncommercial educational purposes. The software has two main features: a calculator and a Python programming interface.

With the calculator, a programmer can create, visualize, and transform images using image processing mathematical and plotting functions, including geometric transformations, masks, filters, noise reduction, convolutions, and the fast Fourier transform (FFT). These allow users to execute complex image processing algorithms in a very simple and fast way. This powerful tool can be used by teachers to easily demonstrate different image processing concepts and examples of mathematical functions. Using the calculator is as easy as using other software, such as MATLAB, with an image processing toolbox. The difference is that PixelMath is free (for educational purposes) and it runs on different operating system platforms without complex installation procedures.

Using the Python programming interface, users can create sophisticated image processing programs as Python scripts. The integration of Python within correspondent functions, variables, and operators in the calculator allows for the creation of interesting applications, such as image morphing and fractal generators, as demonstrated in the book.

This is really a “two-in-one” book, covering image processing concepts and techniques as well as Python programming. The chapters on Python programming are very complete, including basics, control structures, data structures, functions, and programming techniques. This section of the book could be used to teach Python through image processing examples.

I’m seriously considering adopting this as the textbook for future introductory classes in image processing for computer science.