Digital Image Processing:
by Wilhelm Burger & Mark James Burge
First English language edition, Springer, 2008
Reviewed by: Arjan Kuijper
Some time ago a colleague of mine explained to me the success of one of his papers in medical imaging. It was, of course, a good piece of work, but more importantly, he had developed a software plug-in and put it on line, free for download. He has counted over one thousand downloads and subsequently numerous references to his paper. The reason for his success: a program written in Java—ImageJ.
The book by Burger and Burge (an interesting combination from pattern recognition point of view!) focuses on introducing digital image processing using this programming language, ImageJ. This distinguishes the book from basically all other text books in imaging that I am aware of. The most well-known books avoid all programming aspects. Although this maintains the focus on the imaging aspect, problems often occur when one tries to implement things. At least in my experience it never works—well, only after several debugging attempts. I believe I am not alone in this.
On the other hand, there are text books that give an introduction—or description—of imaging in typical engineering or academic languages like C (and variants), Matlab, or Mathematica. The major problem encountered by the authors of these books is that often a certain level of programming skills and imaging knowledge is assumed. They would be a good source for courses in the second half of a Master program, but not in the Bachelor program. Furthermore, Java has become more and more popular as a programming language in multimedia applications, especially in the non-engineering/non-computer science area.
Since digital imaging has become such a basic and ubiquitous part of multimedia education, the authors decided to write a book on this topic. After two successful German editions (which have found their way into several German and Austrian universities and applied universities), an English version has now been published. According to the preface, this is at the cost of 560 kWh of electric energy and 196 kg of carbon dioxide!
The book can be used for two semesters: one on image processing and one on image analysis. Alternatively, the choice of a fundamental and an advanced course can be taken. Many modern books are accompanied by a CD with (extra) contents. This book, however, is supported via the web site www.imagingbook.com on which all Java code can be found, as well as the images in uncompressed TIFF format (for tests) and in PGN format (for slides).
The general structure of the chapters is such that first the concept is discussed, then a program in pseudo code is given, thirdly the Java program is presented, and finally some exercises are given.
The 17 chapters deal with various standard and not-so-standard topics. They start with defining an image and problems in storing images—giving rise to a (for me very interesting) discussion of various digital image types. This is followed by a short introduction of ImageJ.
Then they start with the real work: histograms and operations on them, like gamma correction. The chapter on filters doesn’t only present a collection of filters, but also gives the relevant mathematical background on convolution, for instance the commutative, associative, and linear properties. The rationale behind this is that the students do not only need the how to do it (programming skills and pseudo code), but also need the fundamental understanding of what they are doing.
In “Edges and contours” the authors give an overview of most edge filters incorporated in imaging software and ways to use them for sharpening. After this, the next thing to discuss is corners. This is done in the next chapter by means of the Harris corner detector from concept to implementation.
A third of the way into the book, more advanced chapters start, discussing the Hough transform (lines, circles), morphological filters (dilation, erosion, opening, closing, gray scale), and regions in binary images (finding regions, contours, representations, and properties based on geometry, statistics, and moments).
The chapter dealing with colour was quite instructive to me as it discusses all different colour spaces “I had heard of but never dared to ask about”. Again all kinds of file types and their ways to handle colour are discussed. Conversions from one colour space to the other are given (RGB, HSV/HSB, HLS, YUV, YIQ, YCbCr,, CMY, CMYK, CIE, L*a*b, sRGB)—well, actually I didn’t know all of them. This chapter ends with a discussion of colour statistics and quantisation.
After two thirds of the book, the real advanced chapters begin: the spectral techniques (discrete) Fourier transform and Cosine transform. Again no compromise is made towards the mathematics. In a clear way complex numbers are introduced and the relations between original and transformed signal/image are given. Special attention is paid to aliasing effects, boundary conditions and windowing, all with clear visual examples.
The last two chapters deal with mappings. Firstly, geometric operations like scaling, rotation, projective transformation, and nonlinear distortion are discussed. Most of the time, such operations require a resampling of the image. For this purpose, an overview of interpolation methods is given (NN, linear, cubic, splines, Lanczos, …). Instructive is the visualisation of all methods. The last chapter deals with comparing images and presents different measures for matching a reference image in a search image for both gray scale and binary images.
Having covered 450 pages of text by now in three stages, an additional 100 pages follow with “other” things, like the appendices with mathematical notation, Java notes, an ImageJ short reference, source code for longer programs, and references. The references contain a mixture of old and new papers (up to 2007), guaranteeing a book that is up-to-date and presents the basic principles as well. Finally, there is a complete index.
The colour printing and the quality of the paper are excellent. This makes browsing the book a pleasant experience. For me—having little experience with ImageJ and Java—the book is a worthy addition to the textbooks I have, as it explains the basics of digital image processing without avoiding the essential mathematical background. It is an extremely useful textbook for undergraduate digital imaging courses based on Java/ImageJ. For people familiar with Java and interested in imaging, it is worth double the money as a reference book.
Click above to go to the publisher’s web page where you can read a description of this book and will find many useful links.
More information can be found at:
Book Reviews Published in
the IAPR Newsletter
Numerical Recipes: The art of scientific computing, 3rd ed.
by Press, Teukolsky, Vetterling and Flannery
Feature Extraction and Image Processing, 2nd ed.
by Nixon and Aguado
Digital Watermarking and Steganography:
Fundamentals and Techniques
Springer Handbook of Speech Processing
by Benesty, Sondhi, and Huang, eds.
Bézier and Splines in Image Processing and Machine Vision
by Biswas and Lovell
Practical Algorithms for Image Analysis, 2 ed.
by O’Gorman, Sammon and Seul
The Dissimilarity Representation for Pattern Recognition: Foundations and Applications
by Pekalska and Duin
Handbook of Biometrics
by Jain, Flynn, and Ross (Editors)
Advances in Biometrics –
Sensors, Algorithms, and Systems
by Ratha and Govindaraju, (Editors)
Dynamic Vision for Perception and Control of Motion
by Polanski and Kimmel
Introduction to clustering large and high-dimensional data
The Text Mining Handbook
by Feldman and Sanger
Information Theory, Inference,
and Learning Algorithms
“Foundations and Trends in Computer Graphics and Vision”
Curless, Van Gool, and Szeliski., Editors
Applied Combinatorics on Words
by M. Lothaire
Human Identification Based on Gait
by Nixon, Tan and Chellappar
Mathematics of Digital Images
by Stuart Hogan
Advances in Image and Video Segmentation
Graph-Theoretic Techniques for Web Content Mining
by Schenker, Bunke, Last and Kandel
Handbook of Mathematical Models in Computer Vision
by Paragios, Chen, and Faugeras (Editors)
The Geometry of Information Retrieval
by van Rijsbergen
Biometric Inverse Problems
by Yanushkevich, Stoica, Shmerko and Popel
Correlation Pattern Recognition
by Kumar, Mahalanobis, and Juday
Pattern Recognition 3rd Edition
by Theodoridis and Koutroumbas
Dictionary of Computer Vision and
by R.B. Fisher, et. Al
Kernel Methods for Pattern Analysis
by Shawe-Taylor and Cristianini
Machine Vision Books
CVonline: an overview
The Guide to Biometrics by Bolle, et al
Pattern Recognition Books
Jul. ‘04 [pdf]