void FaceImagePreProcess(IplImage *oldImg)
{
/*
* luhui-2009-06-30.hope you don't delete this line
*
*/
if(oldImg->nChannels==3)
{
uchar BlueValue ;
uchar GreenValue ;
uchar RedValue ;
int height = oldImg->height ;
int width = oldImg->width ;
int step = oldImg->widthStep ;
int channels = oldImg->nChannels ;
uchar *data = (uchar*)oldImg->imageData ;
int origin = oldImg->origin;
int dataOrder = oldImg->dataOrder;
IplImage *redImg=cvCreateImage(cvSize(width,height),8,1);
IplImage *redOldImg=cvCreateImage(cvSize(width,height),8,1);
///
IplImage *redOldImg1=cvCreateImage(cvSize(width,height),8,1);
IplImage *redOldImg2=cvCreateImage(cvSize(width,height),8,1);
cvSplit( oldImg, redImg, redOldImg,redOldImg1,NULL);
cvZero(redOldImg2);
cvEqualizeHist(redImg,redOldImg2);
cvSetImageCOI(oldImg,1);
cvCopy(redOldImg2,oldImg);
cvZero(redOldImg2);
cvEqualizeHist(redOldImg,redOldImg2);
cvSetImageCOI(oldImg,2);
cvCopy(redOldImg2,oldImg);
cvZero(redOldImg2);
cvEqualizeHist(redOldImg1,redOldImg2);
cvSetImageCOI(oldImg,3);
cvCopy(redOldImg2,oldImg);
cvSetImageCOI(oldImg,0);
cvReleaseImage(&redImg);
redImg=NULL;
cvReleaseImage(&redOldImg);
redOldImg=NULL;
cvReleaseImage(&redOldImg1);
redOldImg1=NULL;
cvReleaseImage(&redOldImg2);
redOldImg1=NULL;
}
}