cvEqualizeHist() 直方图均衡化(多通道彩图)

来源:互联网 发布:淘宝情趣用品保密吗 编辑:程序博客网 时间:2024/05/22 20:33

思路:1.先把BGR彩图用cvSplit() 分解成三张单通道图像

    2.分别对三张单通道图像进行cvEqualizeHist() 

            3.用cvAddWeight()或者cvMerge()将3张单通道图像重新合并成彩色图像


测试用图:



程序代码:

#include <highgui.h>#include<cv.h> #include <opencv2/legacy/legacy.hpp>using namespace std;int main(){IplImage *img_in = cvLoadImage("test.jpg");IplImage *img_red = cvCreateImage(cvGetSize(img_in),IPL_DEPTH_8U,1);IplImage *img_blue = cvCreateImage(cvGetSize(img_in),IPL_DEPTH_8U,1);IplImage *img_green = cvCreateImage(cvGetSize(img_in),IPL_DEPTH_8U,1);IplImage *img_out = cvCreateImage(cvGetSize(img_in),IPL_DEPTH_8U,3);cvNamedWindow("img_in",CV_WINDOW_AUTOSIZE);cvShowImage("img_in",img_in);cvSplit(img_in,img_blue,img_green,img_red,0);cvEqualizeHist(img_blue,img_blue);cvEqualizeHist(img_green,img_green);cvEqualizeHist(img_red,img_red);cvMerge(img_blue,img_green,img_red,0,img_out);cvNamedWindow("img_out",CV_WINDOW_AUTOSIZE);cvShowImage("img_out",img_out);cvWaitKey(0);cvDestroyAllWindows();cvReleaseImage(&img_in);cvReleaseImage(&img_blue);cvReleaseImage(&img_green);cvReleaseImage(&img_red);cvReleaseImage(&img_out);return 0;}

运行结果:


0 0
原创粉丝点击