Digital Image Processing:
An Algorithmic Introduction

Using Java


by Wilhelm Burger & Mark James Burge

First English language edition, Springer, 2008


Reviewed by:  Arjan Kuijper

Click here for Top of Page
Right Arrow: Next
Right Arrow: Previous

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 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

             (see review in this issue)


Feature Extraction and Image Processing, 2nd ed.

by Nixon and Aguado

             (see review in this issue)


Digital Watermarking and Steganography:

Fundamentals and Techniques

by Shih

             (see review in this issue)


Springer Handbook of Speech Processing

by Benesty, Sondhi, and Huang, eds.

             (see review in this issue)


Bézier and Splines in Image Processing and Machine Vision

by Biswas and Lovell

             (see review in this issue)


Practical Algorithms for Image Analysis, 2 ed.

by  O’Gorman, Sammon and Seul

             Apr ‘08   [html]     [pdf]


The Dissimilarity Representation for Pattern Recognition:  Foundations and Applications

by Pekalska and Duin

             Apr ‘08   [html]     [pdf]


Handbook of Biometrics

by Jain, Flynn, and Ross (Editors)

             Apr ‘08   [html]     [pdf]


Advances in Biometrics –

Sensors, Algorithms, and Systems

by Ratha and Govindaraju, (Editors)

             Apr ‘08   [html]     [pdf]


Dynamic Vision for Perception and Control of Motion

by Dickmanns

             Jan ‘08   [html]     [pdf]



by Polanski and Kimmel

             Jan ‘08   [html]     [pdf]


Introduction to clustering large and high-dimensional data

by Kogan

             Jan ‘08   [html]     [pdf]


The Text Mining Handbook

by Feldman and Sanger

             Jan ‘08   [html]     [pdf]


Information Theory, Inference,

and Learning Algorithms

by Makay

             Jan ‘08   [html]     [pdf]


Geometric Tomography

by Gardner

           Oct ‘07   [html]     [pdf]


“Foundations and Trends in Computer Graphics and Vision”

Curless, Van Gool, and Szeliski., Editors

           Oct ‘07   [html]     [pdf]


Applied Combinatorics on Words

by M. Lothaire

           Jul ‘07    [html]     [pdf]



Human Identification Based on Gait

by Nixon, Tan and Chellappar

             Apr ‘07   [html]     [pdf]


Mathematics of Digital Images

by Stuart Hogan

             Apr ‘07   [html]     [pdf]


Advances in Image and Video Segmentation

Zhang, Editor

             Jan ‘07 [html]      [pdf]


Graph-Theoretic Techniques for Web Content Mining

by Schenker, Bunke, Last and Kandel

             Jan ‘07 [html]      [pdf]


Handbook of Mathematical Models in Computer Vision

by Paragios, Chen, and Faugeras (Editors)

           Oct ‘06     [html]     [pdf]


The Geometry of Information Retrieval

by van Rijsbergen

           Oct ‘06     [html]     [pdf]


Biometric Inverse Problems

by Yanushkevich, Stoica, Shmerko and Popel

           Oct ‘06     [html]     [pdf]


Correlation Pattern Recognition

by Kumar, Mahalanobis, and Juday

           Jul. ‘06     [html]     [pdf]


Pattern Recognition 3rd Edition

by Theodoridis and Koutroumbas

           Apr. ‘06    [html]     [pdf]


Dictionary of Computer Vision and

Image Processing

by R.B. Fisher, et. Al

           Jan. ‘06    [html]     [pdf]


Kernel Methods for Pattern Analysis

by Shawe-Taylor and Cristianini

           Oct. ‘05    [html]     [pdf]


Machine Vision Books

           Jul. ‘05     [html]     [pdf]


CVonline:  an overview

           Apr. ‘05    [html]     [pdf]


The Guide to Biometrics by Bolle, et al

           Jan. ‘05    [html]     [pdf]


Pattern Recognition Books

           Jul. ‘04                  [pdf]