ahe自适应直方图均衡化代码
时间: 2023-07-02 12:18:20 浏览: 201
以下是使用OpenCV库实现的ahe自适应直方图均衡化代码示例:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg', 0)
# 自适应直方图均衡化
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
dst = clahe.apply(img)
# 显示原图和处理后的图像
cv2.imshow('Original Image', img)
cv2.imshow('AHE Image', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`createCLAHE`函数用于创建一个自适应直方图均衡化器,`clipLimit`参数用于限制对比度增强的程度,`tileGridSize`参数用于定义均衡化时使用的小块的大小。`apply`函数用于应用均衡化器对图像进行处理,并返回处理后的图像。
相关问题
直方图均衡化(HE),自适应直方图均衡化(AHE),限制对比度自适应直方图均衡化(CLAHE)
直方图均衡化(Histogram Equalization,HE)是一种用于增强图像对比度的方法。它通过调整图像的灰度级分布,使得整个灰度范围内的像素值能够更加均匀地分布。这样可以使得图像的细节更加清晰,并增强图像的视觉效果。
自适应直方图均衡化(Adaptive Histogram Equalization,AHE)是一种改进的直方图均衡化方法。与传统的HE不同,AHE将图像分成小块,然后在每个小块内进行直方图均衡化。这样可以在保持局部对比度增强的同时,避免了全局对比度的过度增强。
限制对比度自适应直方图均衡化(Contrast Limited Adaptive Histogram Equalization,CLAHE)是对AHE的改进。CLAHE在AHE的基础上引入了对比度限制机制,以避免在图像中出现过度增强的噪点。它通过限制每个小块内的像素值范围,使得对比度增强更加均衡和自然。
这些方法在图像处理中被广泛应用于增强图像对比度,改善图像质量以及在计算机视觉和医学影像等领域中的应用。它们能够有效地提高图像的视觉感受性和图像分析的准确性。
自己写代码实现AHE(自适应直方图均衡化) 要求生成的图比原图小一圈
好的,以下是Python实现AHE算法的代码,可以生成比原图小一圈的图像:
```python
import cv2
import numpy as np
def ahe(img):
h, w = img.shape[:2]
padded_img = cv2.copyMakeBorder(img, 1, 1, 1, 1, cv2.BORDER_REFLECT)
out_img = np.zeros((h, w), dtype=np.uint8)
for i in range(1, h+1):
for j in range(1, w+1):
window = padded_img[i-1:i+2, j-1:j+2]
hist, _ = np.histogram(window, bins=256, range=(0, 255))
cdf = np.cumsum(hist)
cdf_min = cdf[window[1,1]]
out_img[i-1, j-1] = int((cdf[window[1,1]]-cdf_min) / ((3*3-1) - cdf_min) * 255)
return out_img
img = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)
out_img = ahe(img)
cv2.imshow('Input Image', img)
cv2.imshow('AHE Output', out_img)
cv2.waitKey(0)
```
在这个实现中,我们使用`copyMakeBorder`函数在原始图像周围添加了一圈边框,然后在处理像素时只处理内部的像素。最终输出的图像大小与原始图像相同。如果要生成的图比原图小一圈,则可以在输出之前将边框去除。
阅读全文