//上篇介绍了灰度直方图均衡化的一种方法,今天在介绍一种。
// 直方图均衡化.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "opencv2/opencv.hpp"
int _tmain(int argc, _TCHAR* argv[])
{
cvNamedWindow("src");
cvNamedWindow("EqualizeHist");
IplImage* src= cvLoadImage("F:\\Opencv_picture\\05.jpg");
cvShowImage("src", src);
IplImage* dst= cvCreateImage(
cvGetSize(src),
src->depth, //IPL_DEPTH_8U;
3);
//对每个通道均衡化
IplImage* redImage= cvCreateImage(
cvGetSize(src),
src->depth,
1);
IplImage* blueImage= cvCreateImage(
cvGetSize(src),
src->depth,
1);
IplImage* greenImage= cvCreateImage(
cvGetSize(src),
src->depth,
1);
cvSplit(src, blueImage, greenImage, redImage, NULL);
cvEqualizeHist(redImage, redImage);
cvEqualizeHist(greenImage, greenImage);
cvEqualizeHist(blueImage, blueImage);
//多个单通道合并为多通道
cvMerge(blueImage, greenImage, redImage, NULL, dst);
cvShowImage("EqualizeHist", dst);
cvWaitKey(0);
cvReleaseImage(&src);
cvReleaseImage(&dst);
cvReleaseImage(&redImage);
cvReleaseImage(&blueImage);
cvReleaseImage(&greenImage);
return 0;
}

浙公网安备 33010602011771号