A textbook with software supplied. Will it also suit the individual reader?

Image processing is a really big subject that covers everything from correcting flaws in photographs through to machine vision and AI. The subtitle of the this book make it sound very ambitious: Human and Computer Vision Applications with CVIPtools. In fact it is a fairly traditional account of mostly linear approaches to image processing. It makes use of CVIPtools - the Computer Vision and Image Processing Algorithm Test and Analysis Tool (CVIP-ATAT) and the CVIP Feature Extraction and Pattern Classification Tool (CVIP-FEPC), which I have to admit I hadn't encountered before reading this book. The latest version runs under Windows and it is a C-based library with a COM wrapper. Older versions run under Linux and Unix. You can use the library routines via a GUI application which makes it easy for the reader/student to try things out. The software is provided bound into the back of the book as a CD.

If you are going to get the maximum out of this book you probably need to make a lot of use of the software. It is one of the characteristics of image processing that the theory often sounds good but as soon as you try it out for real you discover that it doesn't quite work for reasons that you might not have anticipated.

The book starts off with two chapters covering the obligatory look at computer imaging systems - mostly it is about the CVIPtools but it also covers file formats. Section II is where the real work starts. This covers basic image analysis and computer vision in the sense of feature detection. Really this section is about classical image processing as applied to industrial machine vision, i.e minimal classification or machine learning. We have an in-depth look at edge and line detection including the Hough transform. Then on to general transformations - Fourier, Walsh Hadamard, Haar and PCA. Finally the linear theory of filtering. All treated at a very basic level - the math is there but it's the ideas and the practice that counts; this is not an abstract approach to linear image processing. The final chapter of the section introduces the ideas of classification and recognition via feature extraction and analysis. The very final part of the chapter deals with classification algorithms.

Section III moves on to image processing and human vision. After a quick look a the way human vision works we are onto the topics of image enhancement - sharpening, smoothing, and histogram methods. The next topic is restoration and reconstruction - again mostly linear filter theory. Only a few pages at the end deal with inverse problems which is a shame because this is an exciting and practical area. The section ends with a look at image compression.

The final section of the book is on the software and how to use it in more adventurous ways.

This a nicely presented book and the topics it covers in depth are well described. Of course, given a subject as large as image processing, there are some areas that are fairly much ignored - the pattern recognition angle, inverse problems such as CAT scanning, high dynamic range, biological approaches, hardware and so on. It is also very much based on linear theory, but without pointing out that there are many other ways to work with images outside of the linear realm, e.g. non-linear operations, model fitting and fuzzy operations - it's just we don't have a clear theory explaining how they work.

Overall, if you are looking for a book on the basics of image processing complete with some ready-made software to let you work through the ideas, this is a good choice. Needless to say it would make a good course text, as long as you picked a suitable path through it to produce something of a reasonable length.