NAME
histeq - performs histogram equalization
SYNOPSIS
#include <stdio.h>
#include "CVIPimage.h"
#include "CVIPdef.h"
#include "CVIPcolor.h"
#include "CVIPhisto.h"
Image *histeq(Image *in, int band)
<in> - a pointer to an Image structure
<band> - which band (0,1, or 2) to operate on; use 0 for
gray
PATH
$CVIPHOME/HISTOGRAM/histeq.c
DESCRIPTION
This function performs a histogram equalization (histeq) on
an input image. Histeq distributes the gray level values
within an image as evenly as possible. The goal of histeq is
a flat histogram.
The function works with color or grayscale images. With a
color image, the user specifies band 0, 1, or 2 as the band
to use for histogram calculations. For a grayscale image,
specify band '0'. The function automatically casts any
CVIP_INTEGER, CVIP_FLOAT or CVIP_DOUBLE image into
CVIP_SHORT. It operates directly on images of type
CVIP_SHORT and CVIP_BYTE.
TYPES AND CONSTANTS
None
RETURN VALUES
Returns a histogram-equalized image.
HISTORY
History information recorded: None
EXAMPLE
#include <CVIPtoolkit.h>
#include <CVIPdef.h>
#include <CVIPimage.h>
#include <CVIPconvert.h>
#include "CVIPcolor.h"
#include "CVIPhisto.h"
void main()
{
Image *cvipImage;
IMAGE_FORMAT format;
char *inputfile, *outputfile;
int mb=0;
setDisplay_Image("picture", "Default");
print_CVIP("\n\t\tEnter the Input File Name: ");
inputfile =(char *) getString_CVIP();
format = getFormat_CVIP(inputfile);
cvipImage = read_Image(inputfile, 1);
view_Image(cvipImage, inputfile);
if(cvipImage->bands>1) {
printf("This function preserves relative
colors.\n");
printf("Select the band on which to calculate\n");
printf("the histogram (0=Red, 1=Green, 2=Blue)\n");
mb=getInt_CVIP(10,0,2);
}
if(cvipImage->image_ptr[0]->data_type > CVIP_SHORT){
cvipImage=condRemap_Image(cvipImage, CVIP_SHORT,
0, 32767);
}
cvipImage =(Image *)histeq(cvipImage,mb);
cvipImage = remap_Image(cvipImage, CVIP_BYTE,0,255);
print_CVIP("\n\t\tEnter the Output File Name: ");
outputfile = getString_CVIP();
view_Image(cvipImage, outputfile);
write_Image(cvipImage,outputfile,CVIP_NO,CVIP_NO,format,1);
free(inputfile);
free(outputfile);
}
BUGS
None at this time
SEE ALSO
AUTHOR
Copyright (C) 1996 SIUE - by Scott Umbaugh and Arve Kjoelen.