This document contains the most recent listing of all functions available to CVIPtools developers. The functions are grouped by class and library. There are two classes of libraries within CVIPtools -- Toolkit and Toolbox.

The Toolkit libraries contain low-level functions, such as data handling and memory management. The Toolbox libraries contain the functions that are typically used by CVIPlab programmers, such as transforms or segmentation routines. This organization is a hierarchical grouping of libraries in which each class successively builds upon the previous class by using the lower-level functions to create higher-level functions. For more detailed information on a particular function see the associated UNIX manual page.

**LIBBAND - data handling of multi-spectral images**

assemble_bands - assembles multiband image from single band images

bandcast - cast image data to greater precision

band_minmax - find the min and max values of each band

extract_band - extracts one band from a multiband image

matalloc - allocate an array of matrices

matfree - free memory allocated by matalloc

vecalloc - allocate an array of vectors

vecfree - free memory allocated by vecalloc

**LIBIMAGE - basic image class methods for type conversion, memory management, etc.** (Note: see $CVIPHOME/include/CVIPimage.h for the get and set macros, such as getData_Image)

delete_Image - Image class destructor

dump_Image - print image information

duplicate_Image - create a new instance of an existing image

getBand_Image - reference a band of matrix data

getBandVector_Image - unload image bands into a vector

getColorSpace_Image - get color space of image (e.g. RGB, GRAY,etc.)

getDataFormat_Image - get data format (i.e. REAL or COMPLEX)

getDataType_Image - get data type of image (e.g. BYTE, FLOAT,etc.)

getData_Image - returns pointer to data (macro in CVIPimage.h)

getFileFormat_Image - get file format of image (e.g. PPM, PGM,etc.)

getImagPixel_Image - read an imaginary pixel sample from the image

getImagRow_Image - reference an imaginary row of the image

getNoOfBands_Image - get number of data bands of image

getNoOfCols_Image - get width of image

getNoOfRows_Image - get height of image

getPixel_Image - same as "getRealPixel_Image"

getRealPixel_Image - read a real pixel sample from the image

getRealRow_Image - reference a real row of the image

getRow_Image - same as "getRealRow_Image"

makeComplex_Image - make real image complex

makeReal_Image - make complex image real

new_Image - Image class constructor

setBand_Image - add a new reference to a band of matrix data

setImagPixel_Image - write an imaginary pixel sample to the image

setPixel_Image - same as "setRealPixel_Image"

setRealPixel_Image - write a real pixel sample to the image data

history_add - add info to image history structure

history_check - check if an operation has been done on an image

history_copy - copies information from old_story

history_get - get info about an operation done on an image

history_show - setup routine for history print

history_print - performs output of history structure to h_story

**LIBIO - general purpose I/O, memory management routines**

allocMatrix3D_CVIP - allocate memory for volume matrix

allocMatrix_CVIP - allocate memory for regular matrix

close_CVIP - close a file for reading or writing

error_CVIP - print error message to terminal

freeMatrix3D_CVIP - free memory associated with volume matrix

freeMatrix_CVIP - free memory associated with regular matrix

getFloat_CVIP - get floating point value from the user

getInt_CVIP - get integer value from user

getString_CVIP - get character string

getUInt_CVIP - get unsigned integer value from user

init_CVIP - parse standard info. from command line

msg_CVIP - print regular message to terminal

openRead_CVIP - open a file for reading (handles "stdin")

openWrite_CVIP - open a file for writing (handles "stdout")

perror_CVIP - print system error message to terminal

print_CVIP - same as "msg_CVIP" minus extra argument

quiet_CVIP - turn off messaging

usage_CVIP - print usage message

verbose_CVIP - turn on messaging

**LIBMANAGER - object managers/handlers**

addhead_DLL - add link to head of list

addnext_DLL - add link following the current link

addtail_DLL - add link to tail of list

delete_DLL - double Linked List class destructor

find_DLL - find a particular object in the list

head_DLL - set current link to head of list

isempty_DLL - is the list empty?

ishead_DLL - is current link pointing to head?

istail_DLL - is current link pointing to tail?

new_DLL - double Linked List class constructor

previous_DLL - point to previous link

print_reverse_DLL - print list in reverse order

promote_DLL - promote current link to head of list

removecurr_DLL - remove current link

removehead_DLL - remove link from head of list

removetail_DLL - remove link from tail of list

replace_DLL - replace object pointed to be current link

retrieve_DLL - retrieve object pointed to by current link

size_DLL - get size of list (number of links)

tail_DLL - set current link to tail of list

addhead_LL - add link to head of list

addnext_LL - add link following the current link

delete_LL - linked list class destructor

find_LL - find a particular object in the list

head_LL - set current link to head of list

isempty_LL - is the list empty?

ishead_LL - is current link pointing to head?

istail_LL - is current link pointing to tail?

new_LL - linked list class constructor

previous_LL - point to previous link

promote_LL - promote current link to head of list

removehead_LL - remove head link

removenext_LL - remove next link

replace_LL - replace object pointed to be current link

retrieve_LL - retrieve object pointed to by current link

tail_LL - set current link to tail of list

addobject_HT - add object using separate chaining technique

delete_HT - hash table class destructor

new_HT - hash table class constructor

setkey_HT - set the hash table key

isempty_Stack - determine whether a stack is empty

new_Stack - create a new instance of an object stack

pop_Stack - pop on object off of the stack

push_Stack - push an object onto the stack

**LIBMAP - image data mapping functions**

condRemap_Image - if the range is 0-255 no remap is done, if it exceeds this range it is linearly remapped to 0-255

linearTrans_Image - perform linear mapping of an image through a transformation matrix

logMap_Image - map image data logarithmically for better display of FFT-transformed images

remap_Image - map image data into a specified range

trun_Image - remap image data, maintain relative size of each data band

**LIBMATRIX - matrix algebra, manipulation and numerical analysis routines** (Note: see $CVIPHOME/include/CVIPmatrix.h for the get and set macros, such as getData_Matrix)

and_Matrix - perform a bitwise AND on two matrices

cbrt_Matrix - finds cube root of a matrix (real/complex)

clone_Matrix - returns a new matrix

conj_Matrix - find complex conjugate of matrix

copy_Matrix - copy matrix a to matrix b

covariance_Matrix - find the covariance estimate of N data bands

crop_Matrix - create a new matrix from region of original

delete_Matrix - Matrix class destructor

det_Matrix - find the determinant of a matrix

duplicate_Matrix - create new instance of an existing matrix

eigenSystem_Matrix - find the eigenvectors of a matrix

fastCopy_Matrix - faster copy if data types are the same

getDataFormat_Matrix - get data format (i.e. REAL or COMPLEX)

getData_Matrix - same as "getRealData_Matrix"

getDataType_Matrix - get data type of matrix (e.g. BYTE, FLOAT,etc.)

getImagData_Matrix - reference imaginary data (mapped into rows)

getImagRow_Matrix - get row of imaginary row

getImagVal_Matrix - get an "imaginary" matrix element

getNoOfCols_Matrix - get number of columns in matrix

getNoOfRows_Matrix - get number of rows in matrix

getRealData_Matrix - reference real data (mapped into rows)

getRealRow_Matrix - get row of real data

getRealVal_Matrix - get a "real" matrix element

getRow_Matrix - same as "getRealRow_Matrix"

getVal_Matrix - same as "getRealVal_Matrix"

invert_Matrix - invert a matrix

mag_Matrix - find magnitude of a matrix (real/complex)

makeComplex_Matrix - make real matrix complex

makeReal_Matrix - make complex matrix real

mult_Matrix - perform vector multiplication of two matrices

multPWise_Matrix - perform piece-wise multiplication

new_Matrix - Matrix class constructor

print_Matrix - print contents of matrix in row major form

read_Matrix - read a matrix structure from disk

rect2pol_Matrix - convert from rectangular to polar coordinates

scale_Matrix - scale a matrix by some factor

setImagVal_Matrix - set an "imaginary" matrix element

setRealVal_Matrix - set a "real" matrix element

setVal_Matrix - same as "setRealVal_Matrix"

sqrt_Matrix - find square root of matrix (real/complex)

square_mag_Matrix - find maganitude squared of a matrix (real/complex)

sub_Matrix - subtract two matrices

transpose_Matrix - find the transpose of a matrix

write_Matrix - write a matrix structure to disk

**LIBOBJECT - object analysis and identification routines**

build_ChainCode - find the chain-code "contour" of an object

delete_ChainCode - delete an instance of a chain code object

delete_Object - object class destructor

drawBB_Objects - draw a bounding box around all objects

draw_ChainCode - draw the contour of an object onto an image using the object's chain code

fill_Object - perform seed fill operation on an object

getProp_Object - find object moment properties

getProp_Objects - find moment properties of multiple objects

getXY_ChainCode - turn a chain code into a list of X-Y coordinates

label_Objects - sequentially label objects

listToVector_Objects - create an object vector from an object list

match_Object - match an object

new_ChainCode - create a new instance of a chain code object

new_Object - object class constructor

print_ChainCode - print the chain code results to a file

printLabel_Objects - print an object list to a file

print_Object - print object statistics to file

printProp_Objects - print a list of object properties to a file

read_ChainCode - read a chain code from a file

readLabel_Objects - read an object list from a file

read_Object - read object statistics from disk

readProp_Objects - read a list of object properties from a file

report_ChainCode - print out the chain code values

trimList_Objects - trim an object list based on properties

**LIBROI - region/area of interest designation, manipulation of an image**

asgnFullImage_ROI - assign ROI as full image dimension

asgnImage_ROI - assign a ROI to an image

delete_ROI - ROI class destructor

getDataFormat_ROI - get data format of ROI

getDataType_ROI - get data type of ROI

getHorOffset_ROI - get horizontal offset from pixel (0,0)

getHorSize_ROI - get height/horizontal size of region

getImagPixel_ROI - get/read imaginary pixel sample from ROI

getImagRow_ROI - reference imaginary row from the ROI

getNoOfBands_ROI - get number of data bands in ROI

getNoOfCols_ROI - same as "getHorSize_ROI"

getNoOfRows_ROI - same as "getVerSize_ROI"

getPixel_ROI - same as "getRealPixel_ROI"

getRealPixel_RO - get/read real pixel sample from ROI

getRealRow_ROI - reference real row from the ROI

getRow_ROI - same as "getRealRow_ROI"

getVerOffset_ROI - get vertical offset from pixel (0,0)

getVerSize_ROI - get width/vertical size of region

loadRow_ROI - load data from a buffer into ROI

new_ROI - ROI class constructor

setImagPixel_RO - set/write imaginary pixel sample to ROI

setPixel_ROI - same as "setRealPixel_ROI"

setRealPixel_ROI - set/write real pixel sample to ROI

unloadRow_ROI - unload row of data from ROI into buffer

**LIBVECTOR - vector algebra and manipulation routines**

band2pixel_Vector - convert a band vector to a pixel vector

convolve_Vector - convolve two vectors

copy_Vector - copy vector a to vector b

findHisto_Vector - find the histogram of a vector

findMaxVal_Vector - return maximum value in vector

findMinVal_Vector - return minimum value in vector

normalize_Vector - normalize a vector between 0 and 1

pixel2band_Vector - convert a pixel vector to a band vector

printHisto_Vector - print histogram values out to a file

subSample_Vector - sub-sample a list of vector points

**LIBARITHLOGIC - arithmetic and logical operations on images**

and_Image - perform a logical AND on two images

divide_Image - divide one image by another

multiply_Image - multiply two images

not_Image - perform a logical NOT on an image

or_Image - perform a logical OR on two images

subtract_Image - subtract one image from another

xor_Image - perform a logical XOR on two images

**LIBCOLOR - color map utilities and color transforms**

colorxform - performs seven color transforms, and inverse transforms

ipct - peforms the inverse principal components transform

luminance_Image - performs color to luminance transform

lum_average - performs color to monchrome using average of all bands

pct - peforms the principal components transform in RGB-space

pct_color - handles both forward and inverse PCT

pseudocol_freq - pseudocolor transform using FFT spectrum and filters

**LIBCOMPRESS - image compression/data reduction routines**

bit_compress - decomposes grey level image into eight bit planes. Each bitplane is then run-length encoded and stored in a binary file

bit_decompress - decompresses each binary file (corresponding to a particular bit plane) into corresponding binary images

bit_planeadd - decompresses bitplane files and add any combinations of bitplanes to produce the resultant graylevel image.

btc_compress - compress the image in 4*4 blocks, store it in a binary file

btc_decompress - decompress the image from the encoded binary file

btc2_decompress - decompress multilevel BTC encoded image

btc3_decompress - decompress predictive BTC encoded image

btc2_compress - multilevel block truncation coding (BTC) image compression

btc3_compress - predictive BTC compression

dpc_compress - differential predictive coding compression

dpc_decompress - differential predictive coding decompression

glr_compress - performs graylevel runlength coding for any window length specified by the user (window range 1-125)

glr_decompress - perform graylevel runlength decoding from the encoded binary file

huf_compress - perform huffman coding and store the probability table and encoded data into a binary file

huf_decompress - perform huffman decoding from the encoded binary file

jpg_compress - perform JPEG compression

jpg_decompress - perform JPEG decompression

rms_error - find the root-mean-squared error between two images

snr - find the peak signal-to-noise ratio between two images

zvl_compress - Ziv-Lempel compression

zvl_decompress - Ziv-lempel decompression

zon_compress - zonal coding based compression, DC quantize

zon_decompress - zonal coding based decompression, DC quantize

zon2_compress - zonal coding based compression, no DC quantize

zon2_decompress - zonal coding based decompression, no DC quantize

**LIBCONVERTER - image conversion, I/O utilities**

bintocvip - convert binary (raw) file format to CVIPtools data structure

ccctocvip - convert CCC file format to CVIPtools data structure

cvipandiris - convert IRIS file format to/from CVIPtools data structure

CVIPhalftone - quantizes gray image to binary, dithering options

cviptobin - convert CVIPtools data structure to binary (raw) file format

cviptoccc - convert CVIPtools data structure to CCC file format

cviptoeps - convert CVIPtools data structure to EPS file format

cviptogif - convert CVIPtools data structure to GIF file format

cviptoitex - convert CVIPtools data structure to ITEX file format

cviptoras - convert CVIPtools data structure to Sun RAS file format

cviptopnm - convert CVIPtools data structure to PNM file format

cviptotiff - convert CVIPtools data structure to TIFF file format

cviptovip - convert CVIPtools data structure to VIP file format

epstocvip - convert EPS file format to CVIPtools data structure

giftocvip - convert GIF file format to CVIPtools data structure

gray_binary - converts natural binary code to gray code and gray to binary

itextocvip - convert ITEX file format to CVIPtools data structure

pnmtocvip - convert PNM file format to CVIPtools data structure

rastocvip - convert Sun RAS file format to CVIPtools data structure

read_Image - read image from disk

tifftocvip - convert TIFF file format to CVIPtools data structure

viptocvip - convert VIP file format to CVIPtools data structure

write_Image - write image to disk

**LIBDISPLAY - display and view functions**

display_Image - display an image using external software

display_RAMImage - to display an image in X-windows from the CVIPtools image queue directly

getDisplay_Image - get the program (viewer) used to display images

setDisplay_Image - set the program (viewer) used to display images

view_Image - general purpose image view function

**LIBFEATURE - feature extraction functions**

area - find area of binary object (number of pixels)

aspect - find aspect ratio (based on bounding box) of binary object

centroid - find row and column coordinates of a binary object

euler - find Euler number of a binary object

hist_feature - find histogram features: mean, standard deviation, skew, energy, entropy

irregular - find irregularity (1/thinness ratio) of binary object

label - labels connected objects in an image

orientation - finds orientation of a binary object via axis of least second moment

perimeter - find the perimeter length of a binary object

projection - find row and column projections of size normalized object

rst_invariant - finds 7 rotation/scale/translation-invariant moment based on features of binary object

spectral_feature - finds spectral features based on FFT power in rings and sectors

texture - finds 14 texture features for four orientations

thinness - finds thinness ratio of binary object

**LIBGEOMETRY - geometry manipulation routines**

bilinear_interp - shrinks or enlarges an image using bilinear interpolation to calculate the gray-level value of new pixels

copy_paste - copies a subimage from one image and pastes it to another image

create_black - create an all-black image

create_cosine - create a cosine wave image of any size and desired frequency

create_checkboard - create a checkerboard image

create_circle - create a circular image

create_line - create a line image

create_rectangle - create a rectangular image

create_sine - create a sine wave image of any size and desired frequency

create_squarewave - create a square wave image of any size and desired frequency

crop - crop a subimage from an image

display_mesh - displays a mesh file as an image, used in warp

enlarge - enlarges image to a user-specified size

mesh_warping - geometrically distort an image

mesh_to_file - saves a mesh structure to a file, used in warp

rotate - rotate the given image by an angle specified by the user (Range 1 ~ 360 degrees)

shrink - shrinks the given image by a factor specified by the user (Range 0.1 ~ 1)

solve_c - solves bilinear equation, used with warp

spatial_quant - quantize an image by one of the following methods: average, median, or decimation

translate - move the entire image horizontally and/or vertically; also used for cut-and-paste of subimage

zoom - zoom the given image by a factor specified by the user (Range 1 ~ 10)

**LIBHISTO - image histogram modification/contrast manipulation routines**

define_histogram - allows user to specify an equation for histogram modification

get_histogram - generates a histogram array from an image

get_histogram_Image - generates a histogram Image from an image

gray_linear - graylevel linear modification

gray_multiply - remap (if necessary) to byte and multiply, clip at 255

gray_multiply2 - cast image to float, multiplies by constant, outputs float image

histeq - histogram equalization

histogram_show - prints ASCII representation of a histogram

hist_spec - perform histogram manipulation using formula specified in by character string(s) for the equation(s)

histogram_spec - perform histogram manipulation using formula specified by define_histogram

local_histeq - local histogram equalization

hist_stretch - histogram stretch, specify range and percent clip both ends

showMax_histogram - creates an image of a histogram of an image

**LIBMORPH - morphological image processing routines**

MorphClose_Image - perform grayscale morphological closing

MorphClose - perform grayscale morphological closing

MorphDilate_Image - perform grayscale morphological dilation

MorphDilate - perform grayscale morphological dilation

MorphErode_Image - perform grayscale morphological erosion

MorphErode - perform grayscale morphological erosion

morphIterMod_Image - perform iterative morphological modification of an image

morpho - performs iterative modification of an image

MorphOpen_Image - perform grayscale morphological opening

MorphOpen - perform grayscale morphological opening

**LIBNOISE - noise generating routines**

gamma_noise - add gamma noise to an image

gaussian_noise - add gaussian noise

neg_exp_noise - add negative-exponential noise

rayleigh_noise - add rayleigh noise

speckle_noise - add speckle (salt-and-pepper) noise

uniform_noise - add uniform noise

**LIBSEGMENT - image segmentation routines**

fuzzyc_segment - perform Fuzzy c-Means color segmentation

gray_quant_segment - perform gray level quantization

hist_thresh_segment - perform adaptive thresholding segmentation

igs_segment - perform improved gray scale (IGS) quantization

median_cut_segment - perform median cut segmentation

multi_resolution_segment - perforom multiresolution segmentation

pct_median_segment - perform PCT/median cut segmentation

sct_split_segment - perform SCT/Center Split segmentation

split_merge_segment - perform split and merge, and multiresolution segmentation

threshold_segment - perform binary threshold on an image

**LIBSPATIALFILTER - spatial filtering routines and noise creation**

acuity_night_vision_filter - visual acuity and night vision application (various blur levels)

adaptive_contrast_filter - adaptive contrast filter, adapts to local gray level statistics

alpha_filter - perform an alpha-trimmed mean filter

contra_filter - perform a contra-harmonic mean filter

convolve_filter - convolve an image with a matrix

edge_detect_filter - perform edge detection on an image (Frei-Chen, Kirsch, Laplacian, Prewitt, Pyramid, Roberts, Robinson, or Sobel)

edge_link_filter - links edge points into lines

geometric_filter - performs a geometric mean filter

get_default_filter - gets Matrix for predefined spatial masks, used with convolve_filter

harmonic_filter - performs a harmonic mean filter

hough_filter - performs an hough transform, links specified lines

maximum_filter - performs a maximum filter

mean_filter - perform a mean filter

median_filter - performs a fast histogram-method median filter

midpoint_filter - performs a midpoint filter

minimum_filter - performs a minimum filter on an image

mmse_filter - minimum mean squared error restoration filter

raster_deblur_filter - raster deblurring filter

smooth_filter - smooths the given image (kernel size in the range 2 ~ 10)

Ypmean_filter - performs a Yp mean filter

unsharp_filter - performs unsharp maksing algorithm

**LIBTRANSFORM - two-dimensional unitary transforms**

fft_transform - perform block-wise Fast Fourie Transform

dct_transform - perform block-wise Discrete Cosine Transform

haar_transform - perform forward or inverse Haar transform

idct_transform - perform inverse Discrete Cosine Transform

ifft_transform - perform inverse Fast Fourier Transform

wavtdaub4_transform - perform wavelet xform based on Daubechies wavelet

wavthaar_transform - perform wavelet transform based on Haar wavelet

walhad_transform - perform Walsh/Hadamard transform (forward or inverse)

**LIBXFORMFILTER - transform filtering routines**

Butterworth_Band_Pass - apply Butterworth bandpass filter in transform domain

Butterworth_Band_Reject - apply Butterworth bandreject filter in transform domain

Butterworth_High - apply Butterworth highpass filter in transform domain

Butterworth_Low - apply Butterworth lowpass filter in transform domain

geometric_mean - geometric mean restoration filter

High_Freq_Emphasis - perform a high frequency emphasis (HP Butterworth + offset)

h_image - creates an image for the degradation fuinction, h(r,c)

homomorphic - perform homomorphic filtering

Ideal_Band_Pass - apply ideal bandpass filter in transform domain

Ideal_Band_Reject - apply an ideal bandreject filter in transform domain

Ideal_High - apply ideal highpass filter in transform domain

Ideal_Low - apply ideal lowpass filter in transform domain

inverse_xformfilter - perform inverse restoration filter

least_squares - perform least squares restoration filter

nonfft_xformfilter - perform standard filters (lowpass, higppass, etc.) on nonfft- symmetry transforms

notch - perform a notch filter

parametric_wiener - parametric wiener restoration filter, variable gamma

power_spect_eq - power spectrum equalization restoration filter

simple_wiener - simple wiener restoartion filter (K parameter)

wiener - wiener restoration filter