首页 > 代码库 > 直方图均衡化 EqualizeHist
直方图均衡化 EqualizeHist
核心函数:
cvEqualizeHist
程序:
#include "cv.h" #include "cxcore.h" #include "highgui.h" #include <iostream> int EqualizeHist(int argc,char** argv) { IplImage* src=http://www.mamicode.com/cvLoadImage("e:\\picture\\4.jpg"); IplImage* SrcB=cvCreateImage(cvGetSize(src),8,1); IplImage* SrcG=cvCreateImage(cvGetSize(src),8,1); IplImage* SrcR=cvCreateImage(cvGetSize(src),8,1); IplImage* DstB=cvCreateImage(cvGetSize(src),8,1); IplImage* DstG=cvCreateImage(cvGetSize(src),8,1); IplImage* DstR=cvCreateImage(cvGetSize(src),8,1); IplImage* Result=cvCreateImage(cvGetSize(src),8,3); cvSplit(src,SrcB,SrcG,SrcR,NULL); //把彩***分成B,G,R三个灰度图,因为cvEqualizeHist只能处理单通道图像 cvEqualizeHist(SrcB,DstB); //直方图均衡化 cvEqualizeHist(SrcG,DstG); cvEqualizeHist(SrcR,DstR); cvMerge(DstB,DstG,DstR,NULL,Result); //合并图像 cvNamedWindow("src"); cvNamedWindow("SrcB"); cvNamedWindow("SrcG"); cvNamedWindow("SrcR"); cvNamedWindow("DstB"); cvNamedWindow("DstG"); cvNamedWindow("DstR"); cvNamedWindow("Result"); cvShowImage("src",src); cvShowImage("SrcB",SrcB); cvShowImage("SrcG",SrcG); cvShowImage("SrcR",SrcR); cvShowImage("DstB",DstB); cvShowImage("DstG",DstG); cvShowImage("DstR",DstR); cvShowImage("Result",Result); cvWaitKey(0); return 0; }
本文出自 “flyclc” 博客,请务必保留此出处http://flyclc.blog.51cto.com/1385758/1539803
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。