前面讲到的自适应直方图均衡化的实现方法首先是将图像划分成不重叠的区域块,让后对每个块分别进行直方图均衡化处理。如果在图像有噪声的情况下这样处理,在每个被分割的小区域块中的噪声就会被放大。

为了避免噪声对图像均衡化的影响,这里使用了限制对比度的自适应直方图均衡化来处理图像的直方图均衡化。

限制对比度的直方图均衡化的处理方式是先为直方图设置一个阈值,该阈值为限制对比度值,超过该阈值的值会被裁剪,然后裁剪的部分会均匀的分布到其他值上,这样就重构了直方图,接下来就可以用重构后的直方图来进行接下来的均衡化操作了。

下面是限制对比度的操作示例图,我这边用excel图来进行展示:

c6573f4d70e1fea489aef4eba90be598.png

8e4fb25960c48b73f9b5e305200c21d0.png

阈值为40时,超出阈值的为50这个直方图区域,将多出的50-40=10的部分均匀分布到每个区域上,平均每个区域增加的值为2

注意:在OpenCV手册中没有提及到限制对比度的自适应直方图均衡化函数。

具体的python实现限制对比度的自适应直方图均衡化代码如下:

00a5e1042653ce59d8d622b9ae2a03fe.png

其中默认设置的“限制对比度”为40,块的大小为8X8

程序运行后的效果如下图所示:

c7c625183d28d6d40d6479cf5b73b48e.png

本文转载自异步社区

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐