https://github.com/imagingbook/imagingbook-public
Image processing software for textbooks by W. Burger & M. Burge
https://github.com/imagingbook/imagingbook-public
burger-burge digital-image-processing imagej imagej-plugins imagingbook java
Last synced: 5 months ago
JSON representation
Image processing software for textbooks by W. Burger & M. Burge
- Host: GitHub
- URL: https://github.com/imagingbook/imagingbook-public
- Owner: imagingbook
- License: bsd-2-clause
- Created: 2022-04-21T06:21:19.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-05-11T14:00:27.000Z (almost 3 years ago)
- Last Synced: 2025-02-01T20:51:09.733Z (about 1 year ago)
- Topics: burger-burge, digital-image-processing, imagej, imagej-plugins, imagingbook, java
- Language: Java
- Homepage:
- Size: 80.5 MB
- Stars: 18
- Watchers: 2
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
README

# `imagingbook` - Main Source Code Repository
[](https://maven-badges.herokuapp.com/maven-central/com.imagingbook/imagingbook-public)
This repository contains the **Java source code** accompanying the
**Digital Image Processing** textbooks by **W. Burger and M. J. Burge**,
published by Springer. This software is based on **[ImageJ](http://rsbweb.nih.gov/ij/index.html)**.
Please visit our main website **[imagingbook.com](https://imagingbook.com/)** for more information.
**Index terms:** digital image processing, computer algorithms, Java, ImageJ, textbook support.
## Repository Structure
The source code is built as a modular Maven project, which includes the following modules:
### Library and Data Modules
These "library-only" modules are packaged as `JAR` files and typically imported as Maven
dependencies. They may also be copied manually to ImageJ's `jars/` directory
(see Use Without Maven below):
* **[imagingbook-common](imagingbook-common/)**
This is the main `imagingbook` library with implementions of image processing algorithms,
associated data structures and utility code. Users interested in applying `imagingbook`
functionality in their own programs only need to import this module (artefact) as a Maven
dependency.
* **[imagingbook-spectral](imagingbook-spectral/)**
Library code related to spectral image processing (Fourier transforms etc.),
separated from the main `imagingbook` library to minimize third-party dependencies.
* **[imagingbook-pdf](imagingbook-pdf/)**
PDF-related library code, separated from the main `imagingbook` library to minimize
third-party dependencies.
* **[imagingbook-sample-images](imagingbook-sample-images/)**
Provides a set of (JAR-packaged) sample images accessible as "named resources", mainly used for demos and testing.
* **[imagingbook-core](imagingbook-core/)**
Minimal (bootstrap) infrastructure required for building the main `imagingbook` library modules.
Includes code for basic file handling, managing resources and automatically compiling
`plugins.config` files for ImageJ plugin sets.
### ImageJ Plugin Modules
These packages contain sets of `ImageJ` plugins that make use of the `imagingbook` library.
Each plugin set is packaged as a `JAR` file and may be imported as a Maven dependency
or copied manually to ImageJ's `plugins/` directory:
* **[imagingbook_plugins_book](imagingbook_plugins_book/)**
A collection of `ImageJ` plugins related to individual book chapters (including
materials from previous editions) and tools for working with `ImageJ` (e.g., exact
zooming and PDF-export).
* **[imagingbook_plugins_demos](imagingbook_plugins_demos/)**
Plugins demonstrating the use of various technical concepts in `ImageJ` and the
`imagingbook` library.
### API Documentation
* [**imagingbook-public**](https://imagingbook.github.io/imagingbook-public/apidocs)
(aggregated JavaDoc for latest build)
### Where to Report Problems
This software is mainly intended for educational purposes and comes as is, with no
guarantees whatsoever. API changes that make the code incompatible with previous versions
may happen at any time. Users are encouraged to report any enountered problems here:
* **https://github.com/imagingbook/imagingbook-public/issues**
## Use With Maven
[](https://maven-badges.herokuapp.com/maven-central/com.imagingbook/imagingbook-public)
### Using Libraries Only
Each of the above modules is available as a
[Maven artifact on Maven Central](https://search.maven.org/search?q=g:com.imagingbook).
For example, to use the `imagingbook-common` library, simply include the following in your
project's `pom.xml`file:
```
com.imagingbook
imagingbook-common
7.2.0
```
Replace the number in `...` by the most current release version found on
[Maven Central](https://mvnrepository.com/artifact/com.imagingbook/imagingbook-common).
### Preconfigured Maven Projects
The following preconfigured projects are available on GitHub for getting started:
* **[imagingbook-plugins-all](https://github.com/imagingbook/imagingbook-plugins-all)**
This is a ready-to-go Maven project that includes the `imagingbook` library, all plugin sets listed above,
packaged in a complete `ImageJ` runtime setup.
* **[imagingbook-maven-demo-project](https://github.com/imagingbook/imagingbook-maven-demo-project)**
This is
a minimal Maven setup for using the `imagingbook` library with `ImageJ`. It includes some sample Java code
to get started.
These projects are set up to develop and run `ImageJ` user plugins out of the box.
They are based on a special Maven profile in
([**imagingbook-parent-pom**](https://github.com/imagingbook/imagingbook-public/tree/master/imagingbook-parent-pom)),
which takes care of ImageJ's particular directory structure during the Maven build.
To use, clone any of these repositories and import it as a Maven project in your favorite IDE.
If necessary, perform Maven `clean` and `install` to update all dependencies and the runtime setup.
These projects may also be used as a good starting point when working without Maven (see below).
To use the `imagingbook` library in an existing (non-Maven based) `ImageJ` environment you need to manually copy all necessary JAR files
e.g., from [imagingbook-plugins-all](https://github.com/imagingbook/imagingbook-plugins-all/tree/master/ImageJ):
* `ImageJ/jars/*.jar` → `ImageJ/jars`
* `ImageJ/plugins/*.jar` → `ImageJ/plugins`
Then restart `ImageJ`. Libraries and plugins should be loaded automatically. The JAR files in
[imagingbook-plugins-all](https://github.com/imagingbook/imagingbook-plugins-all/tree/master/ImageJ)
are typically from the most recent stable ("release") build.
## Related Projects
Other projects using the `imagingbook` library include:
* **[imagingbook-calibrate](https://github.com/imagingbook/imagingbook-calibrate)**: Implementation of Zhang's camera calibration scheme.
* **[imagingbook-violajones](https://github.com/imagingbook/imagingbook-violajones)**: Implementation of Viola-Jones face detection.