1.什么是直方图
- 图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。是图像的统计学特征。
- 上述直方图概念是基于图像像素值,其实对图像梯度、每个像素的角度、等一切图像的属性值,我们都可以建立直方图。这个才是直方图的概念真正意义,不过是基于图像像素灰度直方图是最常见的。
- 假设有图像数据8x8,像素值范围0~14共15个灰度等级,统计得到各个等级出现次数及直方图如下图所示:
- 图像直方图:
2. 直方图均衡化
- 是一种提高图像对比度的方法,拉伸图像灰度值范围。
2.1 如何实现
3. 相关API
3.1 equalizeHist()
equalizeHist(
InputArray src,//输入图像,必须是8-bit的**单通道图像**
OutputArray dst// 输出结果
)
4. 例程
#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>
using namespace std;
using namespace cv;
int main() {
Mat src, dst;
src = imread("D:/resource/images/face.jpg");
if (src.empty()) printf("The image cuoldn't be loaded...");
imshow("input", src);
cvtColor(src, src, COLOR_BGR2GRAY);
equalizeHist(src, dst);
imshow("output", dst);
waitKey(0);
return 1;
}