灰度直方图均衡化(下)

//上篇介绍了灰度直方图均衡化的一种方法,今天在介绍一种。
// 直方图均衡化.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;
}



原文地址:https://www.cnblogs.com/keanuyaoo/p/3322925.html