NAME
spatial_quant - reduces the image size by one of three
methods
SYNOPSIS
#include <CVIPimage.h>
#include <CVIPmatrix.h>
#include "CVIPgeometry.h"
Image * spatial_quant(Image *cvipImage, int row, int col,
int method)
<cvipImage> - pointer to an Image structure
<row> - number of rows for reduced image
<column> - number of columns for reduced image
<method> - reduction method to use where
1 = average
2 = median
3 = decimation
PATH
$CVIPHOME/GEOMETRY/spatial_quant.c
DESCRIPTION
spatial_quant allows the user to specify the number of rows
and columns in the resultant image, corresponding to the
height and width of the new image. The integers specified
for row and column sizes must be equal to or less than the
input image sizes or an error results.
Three methods are available for image reduction:
1) AVERAGE - each pixel in the new image represents an aver-
age of the original image pixels it replaces
2) MEDIAN - each pixel in the new image represents the
median value of the original image pixels it replaces
3) DECIMATION - each pixel in the new image has the same
value as a corresponding pixel in the original image; other
original-image pixels are discarded
Because the user may enter different values for height and
width, spatial_quant may be used to geometrically distort
the image in a rubber-sheet fashion.
TYPES AND CONSTANTS
none
RETURN VALUES
Returns a reduced image upon successful completion; returns
NULL upon error in size specification.
EXAMPLE
#include <CVIPtoolkit.h>
#include <CVIPconvert.h>
#include <CVIPimage.h>
#include <CVIPmatrix.h>
#include "CVIPquant.h"
void main()
{
Image *cvipImage;
IMAGE_FORMAT format;
char *inputfile, *outputfile;
setDisplay_Image("picture", "Default");
system("ln -s /opt/cvipimages/Gray/lena.pgm lena.pgm");
print_CVIP("\nqThis demonstration uses the decimation
method of spatial quantization.\n\n");
print_CVIP("Please enter the image 'lena.pgm' at the fol-
lowing prompt:\n\n");
print_CVIP("Enter the Input File Name: ");
inputfile =(char *) getString_CVIP();
format = getFormat_CVIP(inputfile);
cvipImage = read_Image(inputfile, 1);
display_Image(inputfile,format);
cvipImage = (Image *)spatial_quant(cvipImage, 200,480,3);
print_CVIP("Enter the Output File Name: ");
outputfile = getString_CVIP();
write_Image(cvipImage, outputfile,CVIP_NO,CVIP_NO,format,
1);
display_Image(outputfile,format);
free(inputfile);
free(outputfile);
}
BUGS
None at this time
SEE ALSO
none
AUTHOR
Copyright (C) 1995 SIUE - by Scott Umbaugh and Kun Luo.