您的位置:首页 > 其它

彩色图像的直方图均衡化

2016-06-11 21:49 411 查看
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace std;
using namespace cv;

Mat image,image_eq;
int choice=0;
void on_trackbar(int ,void *)
{
if (choice==0)//normal image
{
imshow("Image",image);
}
else //histogram equalized image
{
imshow("Image",image_eq);
}

}
int main()
{
image=imread("E:\\图片\\123.jpg");
image_eq.create(image.rows,image.cols,CV_8UC3);
//separate channels,equalize histograms and then merge them
vector<Mat> channels,channels_eq;
split(image,channels);
for (int i=0;i<channels.size();i++)
{
Mat eq;
equalizeHist(channels[i],eq);
channels_eq.push_back(eq);
}
merge(channels_eq,image_eq);
namedWindow("Image");
createTrackbar("Normal/Eq.","Image",&choice,1,on_trackbar);
on_trackbar(0,0);

while(char(waitKey(1))!='q'){}
return 0;
}

原始图像:



均衡化后效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: