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

本文主要是介绍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() 对图像进行对比度增强处理:

import cv2# 读取灰度图像
image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)# 创建 CLAHE 对象
clipLimit = 2.0
tileGridSize = (8, 8)
clahe = cv2.createCLAHE(clipLimit=clipLimit, tileGridSize=tileGridSize)# 对图像应用 CLAHE
enhanced_image = clahe.apply(image)# 显示结果
cv2.imshow("Original Image", image)
cv2.imshow("Enhanced Image", enhanced_image)
cv2.waitKey(0)
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. 显示结果

    cv2.imshow("Original Image", image)
    cv2.imshow("Enhanced Image", enhanced_image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

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

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

这篇关于opencv用自适应直方图均衡化函数cv2.createCLAHE()提高对比度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1024227

相关文章

Oracle的to_date()函数详解

《Oracle的to_date()函数详解》Oracle的to_date()函数用于日期格式转换,需要注意Oracle中不区分大小写的MM和mm格式代码,应使用mi代替分钟,此外,Oracle还支持毫... 目录oracle的to_date()函数一.在使用Oracle的to_date函数来做日期转换二.日

opencv实现像素统计的示例代码

《opencv实现像素统计的示例代码》本文介绍了OpenCV中统计图像像素信息的常用方法和函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 统计像素值的基本信息2. 统计像素值的直方图3. 统计像素值的总和4. 统计非零像素的数量

python中cv2.imdecode()与cv2.imencode()的使用小结

《python中cv2.imdecode()与cv2.imencode()的使用小结》本文介绍了cv2.imencode()和cv2.imdecode()函数的使用,文中通过示例代码介绍的非常详细,对... 目录1、图片路径带中文的读取和写入1.1 读取1.2 写入2、在网络中传输图片cv2.imencod

如何提高Redis服务器的最大打开文件数限制

《如何提高Redis服务器的最大打开文件数限制》文章讨论了如何提高Redis服务器的最大打开文件数限制,以支持高并发服务,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录如何提高Redis服务器的最大打开文件数限制问题诊断解决步骤1. 修改系统级别的限制2. 为Redis进程特别设置限制

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>

opencv 滚动条

参数介绍:createTrackbar( trackbarname , "hello" , &alpha_slider ,alpha_max ,  on_trackbar )  ;在标签中显示的文字(提示滑动条的用途) TrackbarName创建的滑动条要放置窗体的名字 “hello”滑动条的取值范围从 0 到 alpha_max (最小值只能为 zero).滑动后的值存放在

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数