XITE
X-based Image processing Tools and Environment
Free Software for Image Processing
Image Processing Laboratory
Department of Informatics
University of Oslo
Norway
Overview
This UNIX software consists of X11-based display programs with image widget and
graphical user interface, more than 200 programs for image processing, 600
subroutines for image processing and widget handling, and 60 subroutines for
image format handling, on-line documentation of all routines and programs, and
more. XITE uses its own image file format (BIFF), but comes with converters
between BIFF and TIFF, pnm, sunraster, raw, MATLAB and ascii.
xshow, the main display program, works with images of arbitrary size and pixel
type, on 8 bitplane PseudoColor and 24 bitplane DirectColor and TrueColor X11
displays. The images may be scaled, zoomed and panned. Look up tables may be
selected from a menu of predefined and userdefined LUTs. The LUTs may also be
specified in a histogram window.
The user may design menus of programs and activate a program by selecting the
program from the menues. If the result of the program is a new image, this
will appear as a new window on the display. In this way xshow works as a
graphical interface to the program library.
The available programs include operations such as statistics, merging,
resampling, arithmetic/logical/relational operations, rotation, mirroring,
affine transformations, convolution, filter design, Fourier/Hartley/Haar/Hough
transforms, color manipulation, histogram transformations, global and local
thresholding, binary thinning, edge detection, morphological operations,
classification, image analysis and texture estimation.
A toolkit is supplied to simplify writing X11 based applications.
Platforms
XITE runs on (at least) the following platforms
- Sun Sparc under SunOS 4.1.3 and Solaris 2.5.
- Silicon Graphics Indy under IRIX 5.3.
- Silicon Graphics Power Challenge under IRIX 6.1.
- DecStation under Ultrix V4.4.
- Dec Alpha under OSF/1 V4.0.
- IBM RS 6000 under AIX 4.1.
- Linux on Intel i486 and i586.
File format
The file format is a raster format for 2D and 3D images. In case of 3D, the
image is viewed as a sequence of bands, the image may contain any number of
bands. Each band may have its own size and pixel type. The image file contains
the neccessary parameters (e.g. sizes and pixel types), pixel data ordered
band by band, line by line; any amount of textual data, regularly used to
store the processing history of the image; and finally any amount of other
data. An internal C data structure is also defined, able to hold the whole
image, information as well as pixels. The individual pixels are accessed by
normal indexing. Simple routines are used to read (write) a whole image from
(to) file or a channel, more complex routines are provided if you want to
access only a part of the file.
Programs
- X display programs, in particular xshow which has a graphical user
interface to most of the other command-based programs.
- Format conversions for TIFF, pnm (pbm, pgm, ppm), raw binary, ascii,
MATLAB, sunraster, PostScript.
- Statistics: size, min, max, median, mean, standard deviation.
- Image representation: subimages, merging images, pyramid, resample
- Arithmetic operations: negate, scale, absolute value, complex
conjugate, add, subtract, multiply, divide, square, square root, rms
difference.
- Logical operations.
- Relational operations.
- Rotation, mirroring, affine transformations.
- Convolution, mean, Compass, Laplace, Gradient, Roberts, Sobel, Prewitt.
- Filter design: Ideal lowpass, highpass, bandpass and bandstop filters.
- Fourier transform, Hartley transform, Haar transform, Hough
transform, geometric transformations, Zernike moments.
- Color manipulation: Gamma correction, dithering, quantization,
ihs-to-rgb, rgb-to-ihs, rgb-to-pseudocolor, pseudocolor-to-rgb
- Histogram, scattergram, histogram transformations (equalization,
normalization).
- Global and local tresholding.
- Binary thinning.
- Canny edge detection.
- Local operators median, min, max, sigma, knn, kncn, snn and others
based on local standard deviation.
- Genererate, add or multiply gaussian noise; generate or add Poisson
noise.
- Morphological operations.
- Non-supervised classification.
- Image analysis: measuring area, perimeter, moments etc.
- Texture estimation: lit, lit-snn, glcm, gray-level run etc.
Routines
All routines are written in C, and you will find
- Everything listed above.
- Biff-routines for image treatment (mainly I/O).
- Image widget, histogram widget and ximage toolkit for writing X11 based
applications.
Documentation
Manual pages are supplied for all functions and programs, in "man" format as
well as html. A User's Manual and System Administrator's Manual are included
as PostScript documents and available in html format from the XITE WWW
homepage.
Time consumption
The algorithms below are tested on images of size 512x512x1 byte. Time
consumption (user time) is measured by the program "time" under UNIX, and
displayed in seconds.
Algorithm | D5 | S10 | PLin | Alph | Indy | Pow | U1 |
convolution 3x3 | 0.78 | 0.6 | 0.55 | 0.149 | 0.107 | 0.129 | 0.13 |
convolution 7x7 | 8.96 | 3.9 | 2.36 | 2.119 | 1.168 | 1.625 | 0.86 |
sobel | 0.50 | 0.2 | 0.28 | 0.096 | 0.070 | 0.083 | 0.04 |
median 3x3 | 1.50 | 0.8 | 0.41 | 0.302 | 0.239 | 0.486 | 0.21 |
median 11x11 | 3.80 | 1.9 | 1.01 | 0.788 | 0.595 | 1.127 | 0.48 |
mean 3x3 | 0.60 | 0.6 | 0.23 | 0.120 | 0.164 | 0.125 | 0.12 |
mean 11x11 | 0.60 | 0.6 | 0.23 | 0.126 | 0.166 | 0.125 | 0.12 |
minarea 11x11 | 0.91 | 0.5 | 0.30 | 0.265 | 0.129 | 0.196 | 0.08 |
2D FFT float | 9.59 | 3.7 | 1.85 | 1.130 | 1.267 | 1.256 | 0.64 |
where the machine types specified in each column are
- D5: Decstation 5000/200
- S10: Sun Sparcstation 10, SunOS 4.1.3
- PLin: Pentium, 100 MHz, 48 MB RAM, Linux
- U1: Sun Ultra-1, 167 MHz, 188 MB RAM, SunOS 5.5
- Indy: SGI Indy SC, 200 MHz R4400/R4010, 64 MB RAM, IRIX 5.3
- Pow: SGI Power Challenge, 75 MHz R8000/R8010, 512 MB RAM, IRIX 6.1
- Alph: Dec 3000 AXP-500 (alpha), OSF1 V4.0
and the commands for each algorithm are
- convolution 3x3: time conv3x3 mona.img m.img 1 2 3 4 5 6 7 8 9
- convolution 7x7: time convolve mona.img m.img 7 7 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9
- sobel: time sobel mona.img m.img
- median 3x3: time median mona.img m.img 3 3
- median 11x11: time median mona.img m.img 11 11
- mean 3x3: time mean mona.img m.img 3 3
- mean 11x11: time mean mona.img m.img 11 11
- minarea 11x11: time minarea mona.img m.img 11 11
- 2D FFT float: biffConvert mona.img mona_r.img r;
time fft2d mona_r.img m.img
How to get the software
You can get the software with a WWW browser from
http://www.ifi.uio.no/~blab/Software/Xite/ or with anonymous ftp from
ftp.ifi.uio.no (presently 129.240.64.41). A "README" file gives further
instructions.
% ftp ftp.ifi.uio.no
Name (ftp.ifi.uio.no): anonymous
Password: (your e-mail address)
ftp> cd pub/blab/xite
ftp> ascii
ftp> get README
ftp> quit
%