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 % _________________________________________________________________ Updated by Svein Bøe.