• opencv用自适应直方图均衡化函数cv2.createCLAHE()提高对比度


    来自WeTab AI Pro

    cv2.createCLAHE() 是 OpenCV 中的一个函数,用于创建 CLAHE(Contrast Limited Adaptive Histogram Equalization,对比度受限自适应直方图均衡化)对象。CLAHE 是一种增强图像局部对比度的技术,通过限制对比度来避免传统直方图均衡化所引入的噪声和过度增强。

    以下是 cv2.createCLAHE() 的详细解释,以及如何使用它:

    函数原型

    cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
    

    参数说明

    1. clipLimit:

      • 类型:float
      • 说明:对比度限幅。从全局对比度的角度出发,对比度受限的程度。默认值为 2.0。当 clipLimit 设置为 0 或者负值时,表示没有对比度限制。较高的值会增加对比度,但可能导致噪声放大。
    2. tileGridSize:

      • 类型:tuple of two ints
      • 说明:每个小网格的大小,以像素为单位(行数,列数)。默认值为 (8, 8)。图像将被分为多个大小相同的网格块,CLAHE 算法分别对每个网格块进行直方图均衡化。

    使用步骤

    1. 创建 CLAHE 对象。
    2. 应用 CLAHE 算法。

    示例代码

    以下示例代码展示了如何使用 cv2.createCLAHE() 对图像进行对比度增强处理:

    1. import cv2
    2. # 读取灰度图像
    3. image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)
    4. # 创建 CLAHE 对象
    5. clipLimit = 2.0
    6. tileGridSize = (8, 8)
    7. clahe = cv2.createCLAHE(clipLimit=clipLimit, tileGridSize=tileGridSize)
    8. # 对图像应用 CLAHE
    9. enhanced_image = clahe.apply(image)
    10. # 显示结果
    11. cv2.imshow("Original Image", image)
    12. cv2.imshow("Enhanced Image", enhanced_image)
    13. cv2.waitKey(0)
    14. cv2.destroyAllWindows()

    代码解释

    1. 读取灰度图像

      image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)
      

      加载需要处理的图像,并将其转换为灰度图像。

    2. 创建 CLAHE 对象

      clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
      

      创建一个 CLAHE 对象,指定对比度受限的参数和网格块大小。

    3. 应用 CLAHE

      enhanced_image = clahe.apply(image)
      

      将 CLAHE 应用于原始图像,生成一个对比度增强后的图像。

    4. 显示结果

      1. cv2.imshow("Original Image", image)
      2. cv2.imshow("Enhanced Image", enhanced_image)
      3. cv2.waitKey(0)
      4. cv2.destroyAllWindows()

    通过上述步骤,你可以对图像的局部对比度进行增强,特别适用于反差较低的图像。在实际应用中,你可以调节 clipLimit 和 tileGridSize 参数,以达到最佳效果。

    希望这能帮你更好地理解和使用 cv2.createCLAHE()。如果还有其他问题,欢迎继续提问!

  • 相关阅读:
    图论:图的相关定义
    数据库常规操作
    网页数据抓取:融合BeautifulSoup和Scrapy的高级爬虫技术
    【从头构筑C#知识体系】0.3 值类型和引用类型
    QT软件开发-基于FFMPEG设计录屏与rtsp、rtmp推流软件(支持桌面与摄像头)(二)
    手写 Attention & 迷你LLaMa2——LLM实战
    FFplay文档解读-17-音频过滤器二
    C++ 11 lamdba表达式详解
    阿里云服务器修改IP地址的两种方法
    HarmonyOS鸿蒙原生应用开发设计- HarmonyOS Sans 字体
  • 原文地址:https://blog.csdn.net/xulibo5828/article/details/139389315