自适应直方图均衡化python
时间: 2023-09-03 12:09:19 浏览: 87
自适应直方图均衡化(Adaptive Histogram Equalization)是一种用于图像增强的技术,它可以增强图像的对比度和细节。在传统的直方图均衡化中,整个图像的像素值分布被均匀化,这可能会导致一些区域被过度增强,而其他区域则失去了细节。自适应直方图均衡化可以避免这种问题。
下面是一个使用Python实现自适应直方图均衡化的示例代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('example.jpg', 0)
# 自适应直方图均衡化
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
img_clahe = clahe.apply(img)
# 显示原图和处理后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Adaptive Histogram Equalization', img_clahe)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,首先读取了一个灰度图像。然后使用cv2.createCLAHE()函数创建一个自适应直方图均衡化器,其中clipLimit参数控制了对比度的增强程度,tileGridSize参数控制了图像被分成的小块的大小。最后,使用apply()函数将均衡化器应用到图像上,并显示原始图像和处理后的图像。
相关问题
自适应直方图均衡化python代码
以下是一个基于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图像,并返回结果。
限制对比度自适应直方图均衡化python代码
限制对比度自适应直方图均衡化(CLAHE)是一种常用于图像增强的方法,可以有效地提高图像的对比度。下面是使用Python实现CLAHE的代码示例:
```python
import cv2
# 读取图像
img = cv2.imread('test.jpg', cv2.IMREAD_GRAYSCALE)
# 创建CLAHE对象
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
# 对图像进行CLAHE处理
img_clahe = clahe.apply(img)
# 显示原图和处理后的图像
cv2.imshow('Original Image', img)
cv2.imshow('CLAHE Image', img_clahe)
cv2.waitKey()
```
在代码中,我们首先读取一张灰度图像,并通过`cv2.createCLAHE()`函数创建了一个CLAHE对象。`clipLimit`参数用于控制对比度的限制,`tileGridSize`参数用于指定图像的块大小。然后,我们使用`clahe.apply()`函数对图像进行CLAHE处理,并将处理后的图像显示出来。
需要注意的是,这里的代码只是一个简单的示例,实际应用中还需要根据具体情况调整参数。
阅读全文