At the forefront of Artificial Intelligence
  Home Articles Reviews Interviews JDK Glossary Features Discussion Search
Home » Reviews » Books » Image Analysis

Digital Image Processing: A Practical Introduction using Java

Cover 9.0
Author:Nick Efford
Excerpt:
The aim of this book is to provide a practical introduction to image processing, avoid unnecessary mathematical detail and focusing on the computation aspects of the subject.
.: Buy at Amazon.com :. .: Buy at Amazon.co.uk :.

Image processing is not a easy topic to cover since it can involve heavy mathematical formulas and intensive computer algorithms. Nevertheless, Efford pulls the balance off perfectly in Digital Image Processing. The book covers a wide variety of topics, from how images are collected and stored to convolutions and other neighbourhood operations. Fast fourier transforms and the frequency domain are also well covered before looking at geometric and morphological operations. The final chapter deals with image compression, discussing run-length encoding and JPEG compression.

As the title suggests, the book consistently uses Java as the programming language of choice. Most concepts and algorithms are presented in Java in the book and can all be found on the CD. As the book progresses, Efford builds a large package of Java classes for the readers to build their own programs with (or augment his). While I don't use Java as much as C++, I found all the programs well written and easy to understand.

Let us take a more detailed look at the chapters and topics covered. Firstly Efford looks at what images are, gives examples of typical image processing techniques and why they might be used. Chapter 2 looks at how images are acquired, both by the human eye and by typical cameras and CCDs. 3-dimensional imaging is also briefly looked at. Chapter 3 look at the digital representation of images, different colour formats and colour encodings.

Chapter 4 looks at the Java specifics of handling images. It looks at the Java2D API classes such as BufferedImage and similar useful classes needed when loading and manipulating images. For non-Java programmers, it may well be worth looking into Java as a great image processing experimentation language. Java has excellent native support for all sorts image-related functions such as loading JPEG files.

Chapter 5 then deals with very basic image processing techniques like dithering, basic geometric manipulation and arithmetical/logical combination of images. Chapter 6 is an excellent chapter discussing greyscale and colour enhancement. Understanding histograms and how to process them is a very important concept and Efford covers it beautifully. Chapter 7 then looks at neighbourhood operations. The basics of neighbourhood operations are well explained, but the chapter doesn't look enough convolution kernels for my liking. Neighbourhood operations can produce an infinite number of special effects and enhancements, but only a tiny handful are looked at in the chapter.

Chapter 8 is another good chapter - covering the frequency domain. Explaining what a frequency analysis of an image means can be hard at the best of times but Efford's explanation finally clarified things for me! Admittedly it wasn't the explanation to end all explanations, but it definitely went a long way. The chapter also comes with some good code and example programs to help you visualize the results of FFT/IFFT operations.

The next three chapters cover geometric operations, segmentation and morphological operations respectively. The geometric chapter looks at how interpolation can be used to improve the results of affine transformations. The chapter also briefly looks at morphing. The segmentation chapters looks at region growing and shrinking while the morphological chapter looks at erosion, dilation, opening and closing (common morpological operations).

The final chapter deals with compression. Another excellent chapter, looks at RLE encoding, dictionary-based compression, JPEG and fractal-based compression. Again the chapter comes with some good example code and programs to mess with.

Overall, Digital Image Processing is an excellent book. Don't let the word "Java" put you off if you've never used Java since the book isn't that tied down by it. On the other hand, Java programmers will be delighted by the amount of code available for them to use in the book and on the CD. Well written and augmented by hundreds of photos and diagrams, this book is a great introduction to the field of image processing.

Submitted: 28/01/2002

 Article Toolbar
Print
BibTeX entry

Search

Latest News
- Generation5 10-year Anniversary (03/09/2008)
- New Generation5 Design! (09/04/2007)
- Happy New Year 2007 (02/01/2007)
- Where has Generation5 Gone?! (04/11/2005)
- NeuroEvolving Robotic Operatives (NERO) (25/06/2005)

What's New?
- Back-propagation using the Generation5 JDK (07/04/2008)
- Hough Transforms (02/01/2008)
- Kohonen-based Image Analysis using the Generation5 JDK (11/12/2007)
- Modelling Bacterium using the JDK (19/03/2007)
- Modelling Bacterium using the JDK (19/03/2007)


All content copyright © 1998-2007, Generation5 unless otherwise noted.
- Privacy Policy - Legal - Terms of Use -