NAME
projection - calculates horizontal and vertical projections
of a size_normalized object of interest
SYNOPSIS
#include <math.h>
#include "CVIPimage.h"
int * projection(Image * labeledImage, int r, int c, int
height, int width)
<labeledImage> - pointer to a labeled image
<r> - row coordinate of a point on the labeled image
<c> - column coordinate of a point on the labeled image
<height> - image height after the object of interest is
normalized
<width> - image width after the object of interest is nor-
malized
PATH
$CVIPHOME/FEATURE/size_norm_projection.c
DESCRIPTION
This function calculates the horizontal and vertical projec-
tions of a binary object. The object is first grown or
shrunk (as required) to fit in the box of <height> height
and <width> width. Zero-order hold is used to grow; deleting
every other line (decimation) is used to shrink. The object
is grown (or shrunk), until it just fits within the box. The
growing or shrinking is the same in both dimensions. The
function then calculates horizontal and vertical projections
on this size_normalized object according to equations given
in chapter 2 of the soon-to-be-published book:
Computer Vision and Image Processing:
A practical Approach Using CVIPtools
S.E.Umbaugh, Prentice Hall, 1997
TYPES AND CONSTANTS
None
RETURN VALUES
A pointer to int, first <height> values are for horizontal
projections, following <width> data are for vertical projec-
tions. Zero values are not filtered out.
HISTORY
History information recorded: None
EXAMPLE
#include <math.h>
#include "ObjectContour.h"
#include "CVIPfeatures.h"
#include "CVIPconvert.h"
void main() {
Image *inputImage, *labeledImage;
IMAGE_FORMAT format;
char *inputfile, *outputfile;
int rows, cols, r, c, h, w;
int *result;
setDisplay_Image("picture", "Default");
print_CVIP("\nEnter the Input File Name: ");
inputfile = (char *) getString_CVIP();
inputImage = read_Image(inputfile, 1);
view_Image(inputImage,inputfile);
labeledImage = label(inputImage);
rows = getNoOfRows_Image(labeledImage);
cols = getNoOfCols_Image(labeledImage);
print_CVIP("\nEnter the row coordinate of any pixel on
the labled image: ");
r = getInt_CVIP(10, 0, rows);
print_CVIP("\nEnter the col coordinate of any pixel on
the labled image: ");
c = getInt_CVIP(10, 0, cols);
print_CVIP("\nEnter image height after the object of
interest is normalized: ");
h = getInt_CVIP(10, 0, cols);
print_CVIP("\nEnter image width after the object of
interest is normalized: ");
w = getInt_CVIP(10, 0, cols);
result = projection(labeledImage, r, c, h, w);
print_CVIP("\nThe horizontal projection of the object
(r, c) = %d\n", *result );
print_CVIP("\nThe vertical projection of the object (r,
c) = %d\n", *(result+1) );
free(inputfile);
}
DIAGNOSTICS
The labeled image can only of data type CVIP_INTEGER
SEE ALSO
libfeature
AUTHOR
Copyright (C) 1996 SIUE - by Scott E. Umbaugh and Wenxing
Li.