Source Code

The algorithms in our books are implemented in Java and ImageJ which is a small, simple and flexible environment for digital image processing, originally conceived (and still being developed) by Wayne Rasband at the U.S. National Institutes of Health (NIH). Our source code is distributed in two parts:

  1. A single archive file that contains the compiled Java files shared by all book editions: imagingbook-common.jar.
  2. A dedicated archive imagingbook_plugins_XXX.jar for each book edition XXX; it contains a collection of ImageJ plugins, structured by individual book chapters.

Downloads

Visit our Source Code Repository and enter the ‘Downloads‘ section to retrieve the following files (‘xx’ denotes the version number):

  1. Common library (required for all):
    • imagingbook-common-xx.jar – download to ImageJ/jars/
  2. Dedicated plugin set for your book edition (one only, download to ImageJ/plugins/):
    • imagingbook_plugins_en1-xx.jar (English ‘Professional’ 1st ed, 2008 / Chinese ed.)
    • imagingbook_plugins_en2-xx.jar (English ‘Undergraduate’ 2nd ed, Vols. 1-3, 2011-2013)
    • imagingbook_plugins_en3-xx.jar (English ‘Professional’ 2nd ed, 2016)
    • imagingbook_plugins_de2-xx.jar (German 2nd ed., 2006)
    • imagingbook_plugins_de3-xx.jar (German 3rd ed., 2015)
    • imagingbook_plugins_all-xx.jar (combined collection of all book plugins)
  3. Additional third-party libraries required:
    • commons-math3-yy.jar – download to ImageJ/jars/

Requirements: current ImageJ installation and Java 1.8 (or higher).

Documentation

Browse the JavaDoc for the imagingbook-common library and sample plugins here.

Installation and setup

It is assumed that you have an up-to-date ImageJ installation available. If not, first set up a minimal ImageJ environment (following the instructions on the ImageJ website). See also here for a minimal setup for working with Eclipse or IntelliJ. In the following, ImageJ/ denotes ImageJ’s root folder.

  1. Place imagingbook-common-xxx.jar in the ImageJ/jars/ folder (create if not existent).
  2. Place the imagingbook_plugins_xxx.jar file in the ImageJ/plugins/ folder. This is sufficient to execute the plugins. Do not install more than one set of plugins – otherwise ImageJ at startup complains about duplicate plugin names (despite the use of distinct Java packages)!
  3. Place the additonal third-party JAR files in ImageJ/jars/.
  4. After restarting ImageJ, book chapters and contained plugins should appear in the ‘Plugins’ menu.

Note that this source code is being continuously updated, enhanced and adapted to newer releases of Java and ImageJ. Thus some of the original code examples in the printed texts may have been replaced by newer and improved versions without notice, although we attempt to preserve the original functionality as much as possible. This may affect class structures, method parameters and coding practices in general. The API thus cannot be guaranteed to be stable and may be incompatible with older code.

Licensing information

This software is provided as a supplement to the authors’ textbooks on Digital Image Processing published by Springer-Verlag in various languages and editions. Permission to use and distribute this software is granted under the BSD 2-Clause “Simplified” License (see http://opensource.org/licenses/BSD-2-Clause and below).

Copyright (c) 2006-2017 Wilhelm Burger, Mark J. Burge. All rights reserved.

-------------------------------------------------------------------------------
The BSD 2-Clause License
-------------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met: 

1. Redistributions of source code must retain the above copyright notice,  this
   list of conditions and the following disclaimer. 
2. Redistributions in binary form must reproduce the  above  copyright  notice,
   this list of conditions and the following disclaimer  in  the  documentation
   and/or other materials provided with the distribution. 

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,  THE  IMPLIED
WARRANTIES  OF  MERCHANTABILITY  AND  FITNESS  FOR A  PARTICULAR  PURPOSE   ARE 
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL  DAMAGES
(INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT OF SUBSTITUTE GOODS  OR  SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR  BUSINESS INTERRUPTION)  HOWEVER  CAUSED  AND
ON ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT,  STRICT  LIABILITY,  OR  TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE  OF  THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies, 
either expressed or implied, of the FreeBSD Project.
-------------------------------------------------------------------------------