首页 > 代码库 > opencv 直方图均衡化
opencv 直方图均衡化
将代码中的图片路径换成实际路径即可。
#include "stdafx.h" #include "cv.h" #include "highgui.h" #include <highgui.h> #include <cv.h> using namespace std; int main(int argc, char** argv) { int k; IplImage* src = http://www.mamicode.com/cvLoadImage("..\\4_3.jpg", 1); IplImage* imgChannel[4] = { 0, 0, 0, 0 }; IplImage* dst = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 3); if (src) { for (k = 0; k < src->nChannels; k++) { imgChannel[k] = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1); //要求单通道图像才能直方图均衡化 } //通道分离 cvSplit(src, imgChannel[0], imgChannel[1], imgChannel[2], imgChannel[3]);//BGRA cout << "dst->nChannels:" << dst->nChannels; for (k = 0; k < dst->nChannels; k++) { //直方图均衡化,原始图像和目标图像必须是单通道 cvEqualizeHist(imgChannel[k], imgChannel[k]); } //通道组合 cvMerge(imgChannel[0], imgChannel[1], imgChannel[2], imgChannel[3], dst); cvNamedWindow("src", 1); cvShowImage("src", src); cvNamedWindow("Equalize", 1); cvShowImage("Equalize", dst); cvWaitKey(0); //释放资源 for (k = 0; k < src->nChannels; k++) { if (imgChannel[k]) { cvReleaseImage(&imgChannel[k]); //imgChannel[i] = 0; } } cvReleaseImage(&dst); } return 0; }
opencv 直方图均衡化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。