http://blog.csdn.net/guoyk1990/article/details/8108667

void CFpOpencvTestDlg::OnBnClickedBtnStep2()
{
CString InputImagePath = "D:\\Images\\1.jpg";
CString OutputImagePath("D:\\Images\\8.jpg");
IplImage * image= cvLoadImage(InputImagePath);
IplImage* eqlimage=cvCreateImage(cvGetSize(image),image->depth,3);
//鍒嗗埆鍧囪 鍖栨瘡涓俊閬?/span>
IplImage* redImage =cvCreateImage(cvGetSize(image),image->depth,1);
IplImage* greenImage=cvCreateImage(cvGetSize(image),image->depth,1);
IplImage* blueImage =cvCreateImage(cvGetSize(image),image->depth,1);
cvSplit(image,blueImage,greenImage,redImage,NULL);
cvEqualizeHist(redImage,redImage);
cvEqualizeHist(greenImage,greenImage);
cvEqualizeHist(blueImage,blueImage);
//鍧囪 鍖栧悗鐨勫浘鍍?/span>
cvMerge(blueImage,greenImage,redImage,NULL,eqlimage);
//淇濆瓨鍥劇墖
cvSaveImage(OutputImagePath, eqlimage);
}