OpenCV实现直方图均衡彩色图片和灰度图片


一、概述

  案例:使用equalizeHist方法实现彩色图片和灰度图片的直方图均衡化

  用处:可提高图像的对比度

  基本概念:

    1.直方图:直方图是数值数据分布的精确图形表示,应用在图片领域其实就是0~255之间的数值多少的精确表示。如下图的直方图:

    2.直方图均衡:所谓的均衡其实就是按照一定的规则把多的地方均给少的地方,从而营造少的地方变多,多的地方变少,整体相对均匀的一种情况。

    函数介绍:    

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

二、代码示例

  1.直方图均衡化灰度图像

 Mat src = imread(filePath);
    if(src.empty()){
        return;
    }
    imshow("src",src);
    Mat dst;
    //将图像转换为灰度图像
    cvtColor(src,dst,COLOR_BGR2GRAY);
    imshow("gray",dst);
    //执行直方图均衡化
    equalizeHist(dst,dst);
    imshow("equalizeHist",dst);

  2.直方图均衡化彩色图像