1. 直方图均衡化
直方图均衡化是通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的。对比度较低的图像适合使用直方图均衡化方法来增强图像细节。
均衡化处理后的图像只能是近似均匀分布,均衡化图像的动态范围扩大了。但是本是扩大了量化间隔,量化级别减少。原来灰度不同的像素经过处理后可能变的相同,形成了一片相同的灰度区域;
OpenCV函数:
void equalizaeHist(InputArray src,OutputArray dst)
步骤:
- 计算输入图像直方图HH
- 进行直方图归一化,直方图的组距的和为255
- 计算直方图积分H′(i)=∑0≤j≤iH(j)H′(i)=∑0≤j≤iH(j)
- 以H′H′作为查询表进行图像变换dst(x,y)=H′(src(x,y))
2. 示例
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat srcImage, dstImage;
//输入原始图像
srcImage = imread("..\\1.bmp");
cvtColor(srcImage, srcImage, COLOR_BGR2GRAY);
//进行直方图均衡化
equalizeHist(srcImage, dstImage);
return 0;
}