自适应直方图均衡化python代码
时间: 2023-09-21 10:11:30 浏览: 155
以下是一个基于Python的自适应直方图均衡化的示例代码:
```python
import cv2
import numpy as np
def clahe(img, clip_limit=2.0, tile_size=(8, 8)):
"""
自适应直方图均衡化
:param img: 输入图像
:param clip_limit: 对比度限制,默认为2.0
:param tile_size: 瓦片大小,默认为(8, 8)
:return: 均衡化后的图像
"""
# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 创建CLAHE对象
clahe = cv2.createCLAHE(clipLimit=clip_limit, tileGridSize=tile_size)
# 应用CLAHE算法
equalized = clahe.apply(gray)
# 将灰度图像转换为BGR图像
equalized = cv2.cvtColor(equalized, cv2.COLOR_GRAY2BGR)
return equalized
```
使用示例:
```python
# 读取原始图像
img = cv2.imread('input.jpg')
# 调用自适应直方图均衡化函数
equalized = clahe(img)
# 显示均衡化后的图像
cv2.imshow('Equalized', equalized)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的示例中,我们将输入图像转换为灰度图像,创建CLAHE对象,并将其应用于灰度图像。最后,我们将均衡化后的灰度图像转换为BGR图像,并返回结果。
阅读全文