”;
In this chapter, we explore some of the free image processing libraries that are widely used and can be easily integrated in the project. These libraries include −
- ImageJ
- Fiji
- Commons Imaging
- ImageMagick
- Endrov
- LeadTools
- OpenCv
ImageJ
ImageJ is a public domain Java image processing program inspired by NIH Image for the Macintosh. It can display, edit, analyze, process, save, and print 8-bit, 16-bit, and 32-bit images.
Some of the basic features of ImageJ are described below −
Sr.No. | Feature & Description |
---|---|
1 |
Runs Everywhere ImageJ is written in Java, which allows it to run on Linux, Mac OS X and Windows, in both 32-bit and 64-bit modes. |
2 |
Open Source ImageJ and its Java source code are freely available and in the public domain. |
3 |
Toolkit Use ImageJ as an image processing toolkit (class library) to develop applets, servlets, or applications. |
4 |
Data Types 8-bit grayscale or indexed color, 16-bit unsigned integer, 32-bit floating-point, and RGB color. |
5 |
File Formats Open and save GIF, JPEG, BMP, PNG, PGM, FITS, and ASCII. Open DICOM. Open TIFFs, GIFs, JPEGs, DICOMs, and raw data using a URL. |
6 |
Selections Create rectangular, elliptical, or irregular area selections. Create line and point selections. |
7 |
Image Enhancement Supports smoothing, sharpening, edge detection, median filtering, and thresholding on both 8-bit grayscale and RGB color images. |
8 |
Color Processing Split a 32-bit color image into RGB or HSV components. Merge 8-bit components into a color image. |
Fiji
Fiji is an image processing package. It can be described as a distribution of ImageJ (and ImageJ2) together with Java, Java3D, and a lot of plug-ins organized into a coherent menu structure. Fiji compares to ImageJ as Ubuntu compares to Linux.
Apart from the ImageJ basic features, some of the advanced features of Fiji are described below −
Sr.No. | Feature & Description |
---|---|
1 |
Registering 3D images This involves Elastic Alignment and Montage, Feature Extraction, Image Stabilizer etc. |
2 |
Segmenting images It offers more than 35 types of segmentation. |
3 |
Useful keyboard short cuts Fuji has a lot of keyboard short-cuts. |
4 |
Scripting Allow scripting with Macros, in JavaScript, JRuby, Jython, Clojure, and Beanshell. |
5 |
Developing Plug-ins Use the Script Editor to start developing plug-ins and then run the plug-ins. |
6 |
ImageJ Tricks ImageJ is easy to use, but sometimes you wish for some function that is actually implemented, yet you do not know how to trigger. |
Commons Imaging
Apache Commons Imaging, previously known as Apache Commons Sanselan, is a library that reads and writes a variety of image formats, including fast parsing of image information such as(size, color, space, ICC profile, etc.) and the meta data.
Some of the basic features of ImageJ are described below −
Sr.No. | Feature & Description |
---|---|
1 |
Java Apache Commons Imaging is written in 100% pure Java. It executes on any JVM, and any platform, without modification. |
2 |
Image Formats It reads and writes a wide variety of image formats, and supports some variations and encodings missed by all or most other libraries. |
3 |
Metadata support It supports reading and writing a variety of meta data in a structured way, including EXIF meta data. |
4 |
Network Friendly It is network-friendly. Commons Imaging only reads the data it needs, and caches what is read so that it is not too heavy on the network. |
5 |
Easy to use It is designed to be very easy to use. It has a simple, clean interface. Most operations are a single Imaging method calls. |
6 |
Transparent Commons Imaging aims to be transparent. There are no hidden buffers to dispose, no native memory to free, no background threads. |
7 |
Open Source It is Free Software/Open Source. It is available under the Apache Software License. |
8 |
Color Conversions The ColorConversions class offers methods to convert between the following color spaces − CIE-L*CH, CIE-L*ab, CIE-L*uv, CMY, CMYK, HSL, HSV, Hunter-Lab, RGB, XYZ, and YXY. |
ImageMagick
ImageMagick is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in more than 100 formats including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PNG, Postscript, SVG, and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear, and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses, and Bezier curve.
Some of the basic features of ImageMagick are described below −
Sr.No. | Feature & Description |
---|---|
1 |
Format conversion It converts an image from one format to another (e.g. PNG to JPEG). |
2 |
Transform It can resize, rotate, crop, flip or trim an image. |
3 |
Transparency It renders portions of an image invisible. |
4 |
Draw It adds shapes or text to an image. |
5 |
Decorate It adds a border or frame to an image. |
6 |
Special effects It can Blur, sharpen, threshold, or tint an image. |
7 |
Animation It can create a GIF animation sequence from a group of images. |
8 |
Composite It can overlap one image over another. |
9 |
Morphology of shapes It extracts features, describe shapes and recognize patterns in images. |
10 |
Encipher or decipher an image It converts ordinary images into unintelligible gibberish and back again. |
Endrov
Endrov is a multi-purpose image analysis program. It is written independently and designed to address many of the shortcomings of other free software and many commercial packages.
Some of the basic features of Endrov are described below −
Sr.No. | Feature & Description |
---|---|
1 |
View data It views data, in 2D and 3D. Designed to handle complex 4D data schemes and unlimited number of channels, where each channel can have its own X, Y, and Z resolution. |
2 |
Annotate your images It annotates your images, automatically or by hand, to understand them and get statistics. |
3 |
Undo and Redo It can undo and redo for all operations. |
4 |
Lazy Evaluation It is designed from the ground to handle large image sets. Endrov uses lazy evaluation, a concept mostly available in research programming languages. |
5 |
Scripting language It supports graphical scripting language, as well as traditional scripting. |
6 |
Java Written in Java. Plug-in architecture allows easy extension with new Java plug-ins. It can interact with Matlab. |
7 |
Formats It accesses almost all commercial and open file formats using Bio-formats. |
8 |
Microscopic Processing It can control all your microscopes with one program and do on-the-fly image analysis. |
LEADTOOLS
LEADTOOLS provides over 200 image processing functions in several categories including document cleanup, medical image enhancement, color conversion and correction, noise reduction, edge detection, and more.
Some of the basic features of LEADTOOLS are described below −
Sr.No. | Feature & Description |
---|---|
1 |
Scanned Document Image Processing This powerful collection of functions can read scanned documents of artefacts and imperfections such as punched holes, skewed angles, borders, dust speckles, and more. |
2 |
Medical Image Processing Enhance the image or highlight the details by shifting, selecting, subtracting, and removing the background for better visuals. |
3 |
Geometric Transformation These functions can be used to clean, align, correct images, or apply artistic 3D effects. |
4 |
Brightness and Contrast These functions can be used to enhance images, apply artistic effects, or aid in diagnostic evaluation of medical images. |
5 |
Color Space Conversion They can add image color space functionality to single and multi-threaded applications including IIS and Windows WF hosted applications. |
6 |
Color Correction These functions are used to correct images with swapped color channels, balance color intensities or perform various image analysis tasks. |
7 |
Image Enhancement These functions are used to correct common errors in photography such as red-eye and imbalanced colors as well as aid in diagnostic evaluation of medical images. |
8 |
Region of Interest These functions are used to create and modify regions of interest in images to perform image processing functions on specific portions of an image, save time in bar-code, and OCR recognition or perform various image analysis tasks. |
OpenCV
OpenCV is released under a BSD license and hence it is free for both academic and commercial use. It has C++, C, Python, and Java interfaces and it supports Windows, Linux, Mac OS, iOS, and Android. OpenCV was designed for computational efficiency and with a strong focus on real-time applications. Written in optimized C/C++, the library can take advantage of multi-core processing.
Some basic features of OpenCV are described briefly −
Sr.No. | Feature & Description |
---|---|
1 |
Smoothing Images This involves applying Blur, GaussianBlur, medianBlur and bilateral Filter. |
2 |
Eroding and Dilating It can apply two very common morphology operators − Dilation and Erosion. |
3 |
Morphology Transformations OpenCV function morphologyEx to apply Morphological Transformation such as opening, closing, TopHat, and BlackHat etc. |
4 |
Image Pyramids OpenCV functions pyrUp and pyrDown to down sample or up sample a given image. |
4 |
Basic Thresholding Operations Perform basic thresholding operations using OpenCV function threshold. |
5 |
Adding borders to your images OpenCV function copyMakeBorder is used to set the borders (extra padding to your image). |
7 |
Remapping In OpenCV, the function remap offers a simple remapping implementation. |
8 |
Histogram Calculation For simple purposes, OpenCV implements the function calcHist, which calculates the histogram of a set of arrays (usually images or image planes). It can operate with up to 32 dimensions. |
”;