自适应直方图均衡化(CLAHE)

  当图像中存在广泛的对比度差异时,传统的直方图均衡化可能无法产生理想的结果。为了解决这个问题,引入了限制对比度自适应直方图均衡化(CLAHE)方法,它将图像分成小块,对每个小块进行直方图均衡化,并在均衡化过程中限制对比度增强的幅度。这可以避免过度增强噪声或细节,同时改善图像的视觉质量。
  CLAHE的原理如下:
  1. 将图像划分为不重叠的小块(称为tiles)。
  2. 在每个小块中,计算直方图。
  3. 对每个小块的直方图进行均衡化,以确保小块内的像素分布更加均匀。
  4. 在进行直方图均衡化时,引入一个限制参数,它控制了对比度增强的程度。如果某个小块的直方图超过了这个限制,那么对比度增强会被限制,以避免过度增强。
  CLAHE 的数学表示如下:
  令 I ( x , y ) I(x, y) I(x,y) 表示原始图像上坐标 ( x , y ) (x, y) (x,y) 处的像素值, I clahe ( x , y ) I_{\text{clahe}}(x, y) Iclahe(x,y) 表示经过CLAHE处理后的图像上坐标 ( x , y ) (x, y) (x,y) 处的像素值。
  1. 将图像划分为大小为 N × N N \times N N×N 的小块: I block ( x , y ) I_{\text{block}}(x, y) Iblock(x,y),其中 ( x , y ) (x, y) (x,y) 属于小块内的像素坐标。
  2. 对每个小块 I block ( x , y ) I_{\text{block}}(x, y) Iblock(x,y),计算直方图 H block ( I block ) H_{\text{block}}(I_{\text{block}}) Hblock(Iblock)
  3. 计算累积分布函数(CDF): C D F block ( I block ) CDF_{\text{block}}(I_{\text{block}}) CDFblock(Iblock),并进行直方图均衡化。
  4. 限制对比度增强的阈值为 C C C,在进行直方图均衡化时,对 C D F block ( I block ) CDF_{\text{block}}(I_{\text{block}}) CDFblock(Iblock) 进行剪切,以限制增强程度。
  CLAHE 的意义在于它能够提高图像的视觉质量,同时避免了在局部区域过度增强对比度引起的噪声和伪影。它在医学图像、无人驾驶、图像增强等领域有广泛的应用。
  以下是使用 OpenCV 中的 cv2.createCLAHE 函数进行CLAHE处理的示例代码:

import cv2
import matplotlib.pyplot as plt

def CLAHE(image):
    # 读取图像
    image = cv2.imread(image, cv2.IMREAD_GRAYSCALE)

    if image is None:
        print('Unable to load input_image!')
        return
    else:

        # 创建CLAHE对象
        clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
        # 应用CLAHE处理
        clahe_image = clahe.apply(image)

        plt.figure(figsize=(6, 4))
        plt.subplot(121), plt.title('Original image'), plt.axis('off')
        plt.imshow(image, cmap='gray', vmin=0, vmax=255)
        plt.subplot(122), plt.title('Clahe image'), plt.axis('off')
        plt.imshow(clahe_image, cmap='gray', vmin=0, vmax=255)
        plt.tight_layout()
        plt.show()


imgfile1='./Images/cat.jpg'
CLAHE(imgfile1)

  在这个示例中,clipLimit 参数控制了对比度的限制程度,tileGridSize 参数定义了图像分块的大小。您可以根据需要调整这些参数以达到最佳效果。

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Make_magic

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值