Computer vision systems are used in a wide range of applications from assembly-line object recognition to robotics. Low-cost video capture modules and high-performance microprocessors have combined to make vision systems practical and economical. Unfortunately, computer vision and recognition is a difficult software problem and the hardware is useless without good applications.
Machine Vision by E.R. Davies is in its third incarnation. This updated version presents the latest in filtering and pattern matching in a form that is both introductory and advanced. A good background in math, matrix algebra, and some limited expertise in imaging is useful. The 900-page tome is obviously the basis for many college computer vision courses, but it is written so just about anyone interested in the topic will find it informative and useful. I spent a five-hour delay in the Pittsburgh airport reading through most of it the first time. It does take some time to digest and appreciate the complexity of the information covered.
The book splits computer vision into low-level, intermediate-level, and 3D-level vision. It also covers various approaches to object recognition. Davies makes extensive use of the Generalized Hough Transform. The content is more theoretical than a programmer’s cookbook, but getting a good understanding of vision systems is necessary to utilize them.
The low-level coverage spans a number of chapters and does an excellent job of presenting basic image filtering as well as shape analysis and edge detection. It also takes a look at boundary pattern analysis. The sections on morphology are a bit sparse in terms of mechanics, but the book is already bumping into 1000 pages so I can’t complain too much. The references are excellent, so it’s relatively easy to find more sources of information on any topic presented in the book.
The intermediate-level coverage was excellent, although I was wanting more in terms of explicit programming examples. The methodology of finding holes, circles, and ellipses is described logically. It’s apparent from the description that the level of complexity is high when attempting to handle images with these shapes, but some code examples would be very informative.
The 3D coverage is good, but the topic area is so broad and complex as to prevent a detailed examination within the book. While this part of the book does provide you with a good understanding of the problem, the case studies—although interesting—are cursory. The coverage of historical, as well as bibliographic, notes throughout the book is especially useful here.
Overall, Machine Vision is a great book for those needing a solid introduction to the internal workings of a vision-based system. It could easily support a two-semester course in the topic area. It also provides the base needed to attempt actual implementations. Take a look at the book if you just need to find out about computer visio, or if you plan on doing work or research in this area. Even an experienced reader may find new information and ideas simply because of the breadth of material that Machine Vision covers.
If you're interested in machine vision, you might also like these books: