OpenCV使用python实现限制对比度的自适应直方图均衡化

简介:

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

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

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

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

05f184fd2c2e846726b544de139c635f19f75fa3

1529d43bc9f638a00c9411bb93bba448f3fb94b8

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

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

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

17b1b4e5b7a254bf6caecc51d1573a5402b4e982

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

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

bd29e1a7c771be14cc4120d10bc00fbae5b9274c

本文摘自异步社区,作者:黑夜探路人,作品:《OpenCV使用python实现限制对比度的自适应直方图均衡化》,未经授权,禁止转载。


推荐阅读

2018年5月新书书单(文末福利)

2018年4月新书书单

异步图书最全Python书单

一份程序员必备的算法书单

第一本Python神经网络编程图书


1e3b4e73269763cdf9de9f0bfbd3261eb7f437d5

0cb5a27fa6fbbf9cb89ce913122f899fd46b8c72
长按二维码,可以关注我们哟

每天与你分享IT好文。


异步图书”后台回复“关注”,即可免费获得2000门在线视频课程

点击查看原文,阅读更多内容

相关文章
|
2月前
|
存储 计算机视觉 异构计算
使用python&C++对bubbliiiing的yolo系列进行opencv.dnn进行推理部署
使用python&C++对bubbliiiing的yolo系列进行opencv.dnn进行推理部署
37 0
|
3月前
|
机器学习/深度学习 存储 算法
Python OpenCV 蓝图:6~7
Python OpenCV 蓝图:6~7
89 0
|
3月前
|
传感器 存储 算法
Python OpenCV 蓝图:1~5
Python OpenCV 蓝图:1~5
53 0
|
3月前
|
机器学习/深度学习 存储 数据库
Python3 OpenCV4 计算机视觉学习手册:6~11(5)
Python3 OpenCV4 计算机视觉学习手册:6~11(5)
55 0
|
3月前
|
存储 API 计算机视觉
Python OpenCV 计算机视觉:1~5
Python OpenCV 计算机视觉:1~5
154 0
|
7天前
|
机器学习/深度学习 算法 自动驾驶
opencv python 图片叠加
【4月更文挑战第17天】
|
16天前
|
编解码 计算机视觉 Python
opencv 图像金字塔(python)
opencv 图像金字塔(python)
|
16天前
|
算法 Serverless 计算机视觉
opencv 直方图处理(python)
opencv 直方图处理(python)
|
2月前
|
C++ 计算机视觉 Python
【Py调用C++】使用使用python调用C++生成dll处理图像(OPENCV)
【Py调用C++】使用使用python调用C++生成dll处理图像(OPENCV)
38 0
【Py调用C++】使用使用python调用C++生成dll处理图像(OPENCV)
|
2月前
|
算法 计算机视觉 开发者
如何在Python中使用OpenCV实现人脸识别
人脸识别技术在当今社会得到了广泛的应用,如何在Python中使用OpenCV实现人脸识别成为了很多开发者关注的话题。本文将介绍如何使用OpenCV库进行人脸检测和人脸识别,并提供完整的代码示例。