直方图均衡化

来源:互联网 发布:淘宝新品上架的微淘 编辑:程序博客网 时间:2024/05/18 03:47

       直方图均衡化是一种把原来在一定灰度级范围变换的图片转换成在所有灰度级变化的图片的一种处理手段,通过该手段可以增强图片的对比度。在openCv中提供了函数cvEqualizeHist来实现。闲话少说,直接上程序。

#include "stdafx.h"#include <cv.h>#include <highgui.h>#include <stdio.h>int _tmain(int argc, _TCHAR* argv[]){    IplImage *Image1;    IplImage *Image2;    IplImage *RedImage;    IplImage *GreenImage;    IplImage *BlueImage;const char *filename = "F:\\openCV\\EqualizationPicture\\EqualizationPicture\\second.jpg" ;     Image1 = cvLoadImage(filename, 1);Image2 = cvCreateImage(cvGetSize(Image1), IPL_DEPTH_8U, 3);RedImage = cvCreateImage(cvGetSize(Image1), IPL_DEPTH_8U, 1);GreenImage = cvCreateImage(cvGetSize(Image1), IPL_DEPTH_8U, 1);BlueImage = cvCreateImage(cvGetSize(Image1), IPL_DEPTH_8U, 1);cvSplit(Image1, RedImage, GreenImage, BlueImage, 0);cvEqualizeHist(RedImage, RedImage);cvEqualizeHist(GreenImage, GreenImage);cvEqualizeHist(BlueImage, BlueImage);cvMerge(BlueImage,GreenImage,RedImage,0,Image2);        cvNamedWindow("原始图", 1);        cvShowImage("原始图", Image1);cvNamedWindow("处理图", 1);cvShowImage("处理图", Image2);        
        cvWaitKey(0);return 0;}


上述程序中的处理过程为,先将图片中的三通道分离,然后分别进行均衡化,再对均衡化后的图像进行合并,即完成整个图片的均衡化处理。下面为处理前后图片的效果。





0 0
原创粉丝点击