直方图均衡化(Histogram Equalization)

1、直方图概念;
2、直方图均衡化;
3、API说明;
4、代码演示;

直方图(Histogram)

1、像素直方图:对图像像素点的像素等级进行统计得到的直方图;纵坐标:出现频率,横坐标:灰度等级;RGB直方图;反应了图像灰度的分布情况,是图像的统计学特征;


2、图像的一切属性值,都可以建立直方图:不是只有像素直方图,还有梯度直方图,方向直方图,RGB直方图,灰度直方图等;直方图属性:①dims(维度);②bins(子区域大小);③range(值范围);

直方图均衡化

1、直方图均衡化:即直方图拉伸,拉伸图像灰度值范围,是一种提高图像对比度的方法;直方图均衡化将出现频率尽量均匀分布到整个直方图空间;


2、直方图均衡化实现方法:1、先统计第i个灰度出现的总次数,2、将其进行重映射;

直方图均衡化API

1、API : equalizeHist() , hist : 直方图

//use
equalizeHist(
		InputArray src,       //输入图像,必须是8bit的单通道图像
		OutputArray dst     //输出结果
		)

Code

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
   
	Mat src,dst;
	src = imread("C:\\Users\\hello\\Desktop\\18.jpg");
	if (src.empty())
	{
   
		cout << "could not load the image..." << endl;
		return -1;
	}
	namedWindow("input image", CV_WINDOW_AUTOSIZE);
	imshow("input image", src);

	Mat temp;
	cvtColor(src, temp, CV_BGR2GRAY);
	equalizeHist(temp, dst);

	imshow("Histogrm Equalization Image", dst);
	waitKey(0);
	return 0;
}

效果

直方图均衡化效果:对比度增强