//上篇介绍了灰度直方图均衡化的一种方法,今天在介绍一种。
// 直方图均衡化.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号
浙公网安备 33010602011771号