ILIB1

ILIB 1 : ImageProcessing Software

ILIB1 Programming example

Image Processing Features

ILIB1, our basic image processing library, is by itself competitive in functionality with most other image processing software. However, this first library is only the starting point for ILIB. Features include:

- Bilinear Interpolation

- Colour Processing

- Convolution Functions

- High Pass Filters

- Image Graphics

- Image Manipulation

- Laplacian Filters

- Logical Operators

- Low Pass Filters

- Mathematical Operators

- Morphology

- Programming Utilities

- Region of Interest Based

- Statistical Operators

This first library covers the needs of the customer who requires basic image processing and manipulation with the potential to extend to full image analysis and beyond.

ILIB1 Image Processing - Benfits

ILIB1 provides a set of fast image processing functions that can be called from Windows 95/NT using standard 32 bit compilers such as Visual Basic and Visual C/C++. You can generate your own user interface using, say, Visual Basic and not have the restrictions built in to the usual "point and click" Windows imaging applications. With ILIB you do not have to compromise: you can build your system quickly to do exactly want you want.

ILIB has an open structure and is designed to be portable. This means you can design your system starting with the software and your requirements, and do not have to worry about making your system fit proprietary hardware that will be out of date soon after your system is completed. Remember that if you use the more limited software provided by your board manufacturer you will often find you are then restricted to their hardware.

ILIB1 Image Processing Specifications

Image Data Types
ILIB will process mono images in 8 bit, 16 bit and 32 bit integer format. For specialist mono applications 32 bit floating point images may be used and these may be combined to form complex (real and imaginary 32 bit floating point) image data. The 8 bit mono data type is compatible with Windows 8 bit device independent bitmaps.

For colour processing, 24 bit true colour image data is used. True colour images may be in the form of RGB, HSI or other colour systems. The 24 bit colour images come in two formats: three colour planes or Windows 24 bit DIB compatible format. If the DIB compatible format is used 24 bit bitmaps may be processed directly as ILIB images.

Image Regions and Processing Speed

ILIB1, the Image Processing library, is based on regions of interest within an image. Operating on a region of interest can be many times faster than processing a whole image. For example, a region of 50 pixels by 50 pixels can be processed more than 100 times faster than the whole of a 512x512 image. Furthermore, image regions can be processed in parallel if appropriate hardware is used.

ILIB1 will give a 3x3 convolution over a 256x256 image with full error checking in about 8-8.5 msec on a 200 MHz Gateway 2000 pentium pro running Microsoft Visual C++ under Windows NT.

The Image Processing Library includes:

Colour Functions: Dynamic image create and free; colour to mono conversion; uniform Heckbert and Optimal palettes, conversion to pseudo-colour; colour masking; copying colour data; conversion from RGB to other systems and back.

Convolution Functions: NxM offset convolution; 3x3 convolution; 5x5 convolution; NxM convolution; fast integer 3x3, 5x5 and NxM convolutions.ILIB convolutions include thresh-holding of the output pixels.

Data Handling Functions: 1D vector from image column; 1D vector from image row; 1D vector into image column; 1D vector into image row; 2D matrix from image region; image region from 2D matrix.

Graphical Functions: Draw a rectangle around region; reduce to half size; horizontal mirror image; vertical mirror image; scale the image to new x,y dimensions; 90 degree rotation; arbitrary image rotation; magnify or reduce region; translate region; shift horizontally; shift vertically; horizontal shading; vertical shading; x,y shading; conical shading; histogram modification.

High Pass Filters: Frei-chen strength and orientation; horizontal edge filters; vertical edge filters; specific high pass filters; pixel difference strength and orientation filters; separated pixel difference strength and orientation filters; Prewitt strength and orientation filters; Roberts strength and orientation filters; Sobel strength and orientation filters; statistical difference filters; unsharp filters; Wallis operator.

Image Utilities: Image region copy; image display; get image data; check the heap and stack; image descriptor; image identification code; copy image structure to different image type; convert image structure to different pixel type; copy image; set and get region dimensions; image modification count; compute binary image; constant image; mask region; detect deviant pixels; pixel range increment and decrement; extract region; replace pixels; re-scale pixels; get and set column; get and set pixel; get and set row; find horizontal, vertical, NESW and NWSE lines; vertical and horizontal pixel ramp; zero region; verify vector; verify matrix and verify image; check region size; test image structure; read and write image disk files.

Laplacian Filters: Five different Laplacian operators.

Logical Functions: Image TRUE, FALSE, AND, NAND, OR, and XOR functions.

Low Pass Filters: 3x3 and NxM arithmetic mean filters; 3x3 and NxM median filters; 3x3, 5x5, 7x7 and NxM rectangular mean filters; weighted mean filter; weighted rectangular mean filter.

Mathematical Functions: Image addition; image subtraction; image multiplication and image division; count pixels in range; compare image regions; horizontal and vertical differential filters; image entropy; image equality; image exponential; invert image; log2, log10 and logn images; maximum and minimum images; image modulus; count of ON pixels; pixel maximum and minimum; image power function; square root image; pixel value sum.

Memory Utilities : Vector and matrix dynamic allocation routines.

Morphological Filters: Diagonal fill; dilation; erosion; H erase; interior removal; interior fill; pixel fill; pixel remove; majority ON; grey level dilate; grey level erode; pixel spur removal.

Random Functions: Four high quality uniform pseudo random pixel generators; binomial pseudo random pixel generator; two forms of pseudo random binary pixel generators; gamma distribution pixel generator; addition of random pixels; normal distributed random pixel generator; Poisson distributed pseudo random pixel generator.

Statistical Operators: Pixel histogram; pixel histogram over range; median pixel value; mode pixel value; various pixel value moments; pixel value kurtosis; arithmetic, geometric, and harmonic means; outlier removal; compute pixel range; pixel skew; pixel standard deviation and variance.

Source Code Functions: alpha trimmed mean filter, adaptive DWMTM filter, adaptive MMSE filter, chain codes, multiple band colour thresh-holding, colour conversions, bit plane slicing, contrast correction, line drawing, simple fade, the Custer filter, distance mapping, morphological top hat filter, top hat 3x3, 5x5 and 7x7 filters, contra harmonic mean filter, mid point filter, range filter, weighted median, nearest neighbour pixel histogram, 11 Frei Chen kernels, Abdou 7x7 kernel, 3 crisp kernels, row and col pixel difference kernels, row and col separated pixel difference kernels, Roberts left and right cross kernels, Sobel row and col kernels, Laplacian 3x3 and 5x5 kernels, sharpen 3x3, Mexican hat 7x7, 8 Kirsch kernels, Mean NxM, 3 weighted means, 3 gaussian means, nearest neighbour 4 connected, Octagonal 5x5 and 7x7, 12 Nevatia Babu kernels, 12 Prewitt kernels and 16 Robinson kernels.