opencv3--学习笔记(彩色图片直方图均衡化的彩色输出图)
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include<opencv2/core/core.hpp>
#include<iostream>
using namespace std;
using namespace cv;
//--------------------------------------【main( )函数】-----------------------------------------
// 描述:控制台应用程序的入口函数,我们的程序从这里开始执行
//-----------------------------------------------------------------------------------------------
int main()
{
// 【1】加载源图像
Mat srcImage, dstImage;
srcImage = imread("1.jpg", 1);
//tempImage = srcImage;
if (!srcImage.data)
{
printf("读取图片错误,请确定目录下是否有imread函数指定图片存在~! \n");
return false;
}
imshow("原始图", srcImage);
//定义一个channels储存分离后的通道
vector<Mat> channels;
//R G B三个通道
Mat imageBlueChannel, imageGreenChannel, imageRedChannel;
//分离图像
split(srcImage, channels);
imageBlueChannel = channels.at(0);
imageGreenChannel = channels.at(1);
imageRedChannel = channels.at(2);
//分别对每一个通道就行直方图均衡化
equalizeHist(imageBlueChannel, imageBlueChannel);
equalizeHist(imageGreenChannel, imageGreenChannel);
equalizeHist(imageRedChannel, imageRedChannel);
//将直方图均衡化的通道合并起来
merge(channels, dstImage);
imshow("经过直方图均衡化后的图", dstImage);
waitKey(0);
return 0;
}
输出图片: