OpenCV 直方图处理:直方图均衡和规定化(匹配)

OpenCV 直方图处理:直方图均衡和规定化(匹配),第1张

灰度直方图图像中像素灰度集的一种统计反应。它能够描述图像中灰度的分布情况,直观地展现出图像中灰度所占多少。直方图横轴表示像素的灰度范围(比如说 0~255),纵轴表示的是像素的数量或者密度。亮暗、对比度、图像中的内容不同,直方图的表现也会不同。本文主要参考《冈萨雷斯》一书。

有的图像的灰度分布不均匀,出现过亮过暗,或者对比度过低的情况,这样的图像细节不明显,在肉眼观察时会丢失一些信息。这时可以使用直方图均衡技术对图像进行变换,变成肉眼易于分辨的细节分明的图像。

图像是离散的,所以实际中使用的是离散形式

那么使用上面的公式,就可以将直方图变换成这个样子,这样的图像一般具有比较好的细节表现。

一般来说,直方图均衡能够自动地确定变换函数,且输出结果比较好,当时需要自动增强时是一种好方法。但有的情况下,使用直方图均衡并不是最好的办法。有时候我们可以指定特定的直方图,而不是均匀分布的直方图,并让原图像的直方图变换成我们指定的形式。这个过程称为直方图匹配或者直方图规定化。

在推导过程中,直方图规定化的过程如下:

1对原图像进行直方图均衡。和上面一样。

2对事先规定的直方图也进行均衡。z为最终输出图像像素的灰度值。

我这里做个图解释一下

同样的,写成离散形式。

感觉OpenCV在直方图处理这方面并不怎么走心。这里使用的是另一篇 博客 的类封装和算法实现。

直方图规定化中要注意两点:

References:

《数字图像处理》 —— 冈萨雷斯

图像处理基础(8):图像的灰度直方图、直方图均衡化、直方图规定化(匹配)

  如果一幅图像拥有全部可能的灰度级,并且像素值的灰度均匀分布,那么这幅图像就具有高对比度和多变的灰度色调,灰度级丰富且覆盖范围较大。在外观上,这样的图像具有更丰富的色彩,不会过暗或过亮。

  图13-22展示了对一幅图像进行直方图均衡化前后的对比,左图是原始图像,比较暗;右图是均衡化后的图像,色彩比较均衡。

  在OpenCV的官网上,对图像均衡化(即直方图均衡化)前后的直方图进行了对比,如图13-23所示。其中,左图是原始图像的直方图,可以看到灰度级集中在中间,图像中没有较暗和较亮的像素点;右图是对原图均衡化后的直方图,像素分布更均衡。

  直方图均衡化的主要目的是将原始图像的灰度级均匀地映射到整个灰度级范围内,得到一个灰度级分布均匀的图像。这种均衡化,既实现了灰度值统计上的概率均衡,也实现了人类视觉系统(Human Visual System, HVS)上的视觉均衡。

直方图均衡化的算法主要包括两个步骤:

OpenCV使用函数cv2equalizeHist()实现直方图均衡化。

例1311使用函数cv2equalizeHist()实现直方图均衡化。

根据 维基百科 上的定义, 直方图均衡(Histogram Equalization)是图像处理领域中利用直方图对对比度进行调整的方法

顾名思义, 直方图均衡是将直方图的分布(概率密度)调整为均匀分布

根据信息论, 信息的熵越大, 包含的信息也就越多, 熵的计算公式如下:

只有当 均匀分布时, 熵的值最大 对应到图像上, 当图像直方图均匀分布时, 图像对比度最大 如下图所示:

蓝色为原始图像直方图, 绿色为均衡后直方图, 对应的处理后的图像为:

可以看到, 直方图均衡处理后, 图像变得更加清晰了

知道了为什么, 就要知道怎么做 一般直方图均值有以下几个步骤:

式中, , 分别为图像的高和宽, 表示灰度值为 的像素的个数, 为变换后的灰度值, 为映射函数, 计算过程使用了累计直方图

知道怎么做了, 就要知道为什么可以这么做 这里解释下为啥可以这么做, 即公式(3)是怎么得到的

设原始直方图分为为

均衡化后的直方图分布为

映射函数为

这里映射函数必须为单调递增函数, 满足:

即对应区域间内像素点的总数是一样的, 如下图红色区域所示:

将公式(4)代入公式(5), 则有:

因而, 可以得到:

对应的离散形式为公式(3)

直方图均衡过度的强调了灰度个数的重要性, 对数量多的灰度过度的进行了增强, 而图像中, 比例比不是很多的灰度往往更重要, 因而改进的方向就是减少数量多的灰度的影响, 我这里想到的有 3 种方法:

这3种方法的映射关系曲线如下所示:

从图中可以看到, 原始的直方图均衡后图像最亮, 如下所示为几种方法的结果对比, 依次为原图, 原始直方图, 改进0, 改进1, 改进2:

可以看到, 直方图可以改善图像整体的质量, 但对于某些局部图像, 则由于直方图的性质导致过亮或者过暗

这里总结下直方图均衡化的优缺点:

以上就是关于OpenCV 直方图处理:直方图均衡和规定化(匹配)全部的内容,包括:OpenCV 直方图处理:直方图均衡和规定化(匹配)、直方图均衡化、一文搞懂直方图均衡等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10213923.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存