NAME
local_histeq - performs histogram equalization on block-by-
block basis
SYNOPSIS
#include <stdio.h>
#include "CVIPimage.h"
#include "CVIPdef.h"
#include "CVIPcolor.h"
#include "CVIPhisto.h"
Image *local_histeq(Image *in, int size, int mb)
<in> - pointer to an Image structure
<size> - desired blocksize
<mb> - RGB band on which to calculate histogram (0,1,2)
PATH
$CVIPHOME/HISTOGRAM/local_histeq.c
DESCRIPTION
This function performs histogram equalization on local areas
of an image rather than on the image as a whole. The user
may specify the size of blocks to use. By performing local
rather than global histeq, detail can often be enhanced in
large uniform areas of an image.
The function will remap 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
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 rows, cols;
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);
cvipImage =(Image *) local_histeq(cvipImage,16,0);
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.