21 OpenCV 直方图均衡化

时间:2024-03-18 10:26:15

文章目录

  • 直方图概念
  • 均衡的目的
  • equalizeHist 均衡化算子
  • 示例

直方图概念

在这里插入图片描述
图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。
在这里插入图片描述

均衡的目的

直方图均衡的目的是增强图像的对比度,使得图像中的各个区域的亮度分布更加均匀,从而提高图像的视觉质量。通过对图像的灰度直方图进行调整,将原始图像中灰度值分布不均匀的部分拉伸开来,使得整个灰度范围内的像素值都能得到充分利用,达到增强图像细节、改善图像质量的效果。直方图均衡也常用于图像增强、图像压缩、图像分割等领域。

equalizeHist 均衡化算子

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

示例

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;

Mat src, src_gray, dst;

const char* output_title = "final image";
int main()
{
	src = imread("test.jpg");//读取图片
	if (src.empty())
	{
		cout << "could not load img...";
		return -1;
	}
	imshow("test", src);
	cvtColor(src, dst, COLOR_BGR2GRAY);
	equalizeHist(dst, dst);
	namedWindow(output_title);//设置窗口名称
	imshow(output_title, dst);
	waitKey(0);
	return 0;
}

在这里插入图片描述