opencv- CLAHE 有限对比适应性直方图均衡化
CLAHE(Contrast Limited Adaptive Histogram Equalization)是一种对比度有限的自适应直方图均衡化技术,它能够提高图像的对比度而又避免过度增强噪声。
在OpenCV中,cv2.createCLAHE() 函数用于创建CLAHE对象,然后可以使用该对象的 apply() 方法来对图像进行CLAHE均衡化,它在局部区域内对图像进行直方图均衡化,从而提高图像对比度而避免噪声过度增强。
函数的基本语法如下:
clahe = cv2.createCLAHE(clipLimit, tileGridSize)
参数说明:
clipLimit: 对比度限制。对比度超过该值的像素将被截断,以防止过度增强对比度,默认为 40.0。tileGridSize: 图像被分割为多个小块(tiles),每个小块内进行局部直方图均衡化。tileGridSize定义了每个小块的大小,默认为 (8, 8)。
创建CLAHE对象后,可以使用该对象的 apply() 方法对图像进行CLAHE均衡化。
示例代码:
import cv2import matplotlib.pyplot as plt# 读取灰度图像
img = cv2.imread(r"C:\Users\mzd\Desktop\opencv\2.jpg", cv2.IMREAD_GRAYSCALE)
# 创建CLAHE对象
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
# 进行CLAHE均衡化
clahe_img = clahe.apply(img)
# 绘制原始图像和CLAHE均衡化后的图像
plt.figure(figsize=(8, 4))
plt.subplot(1, 2, 1)
plt.imshow(img, cmap='gray')
plt.title('Original Image')
plt.subplot(1, 2, 2)
plt.imshow(clahe_img, cmap='gray')
plt.title('CLAHE Image')
plt.show()
# 显示原始图像和CLAHE均衡化后的图像
cv2.imshow('Original Image', img)
cv2.imshow('CLAHE Image', clahe_img)# 等待用户按下任意键
cv2.waitKey(0)
cv2.destroyAllWindows()


在这个示例中,通过调整 clipLimit 和 tileGridSize 参数,你可以控制CLAHE的效果。CLAHE通常在需要提高图像对比度的情况下使用,特别是在局部对比度不均匀的图像上。
CLAHE在局部区域内进行直方图均衡化,这有助于避免在全局均衡化中出现的过度增强噪声的问题。
相关文章:
opencv- CLAHE 有限对比适应性直方图均衡化
CLAHE(Contrast Limited Adaptive Histogram Equalization)是一种对比度有限的自适应直方图均衡化技术,它能够提高图像的对比度而又避免过度增强噪声。 在OpenCV中,cv2.createCLAHE() 函数用于创建CLAHE对象,然后可以…...
IOS免签封装打包苹果APP的方法
IOS免签app封装打包苹果APP的方法如下: 准备一个未签名的IPA文件。获取一个企业证书或个人证书,用于签名IPA文件。将证书添加到Keychain Access中。安装iOS App Signer(可以在网上找到相关下载链接)。打开iOS App Signer…...
Springboot引入分布式搜索引擎Es RestAPI
文章目录 RestAPI初始化RestClient创建索引库删除索引库判断索引库是否存在总结 RestClient操作文档增加文档数据查询文档删除文档修改文档批量导入文档小结 RestAPI ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通…...
Lua脚本解决redis实现的分布式锁多条命令原子性问题
线程1现在持有锁之后,在执行业务逻辑过程中,他正准备删除锁,而且已经走到了条件判断的过程中,比如他已经拿到了当前这把锁确实是属于他自己的,正准备删除锁,但是此时他的锁到期了,那么此时线程2…...
Vatee万腾独特科技力量的前沿探索:Vatee的数字化奇点
在当今科技的浪潮中,Vatee万腾以其独特的科技力量成为前沿探索的引领者,正迎来数字化奇点的新时代。Vatee万腾不仅仅是一家科技公司,更是一支探索未知领域、开创数字时代新局面的先锋力量。 Vatee万腾的数字化奇点体现在其对前沿技术的深刻理…...
C++面试,const的使用
#include <iostream> #include <cstring>int main() {const int x 1;int b 10;int c 20;const int* a1 &b;int* const a2 &b;const int* const a3 &b;x 2;a1 &c;*a1 1;a2 &c;*a2 1;a3 &c;*a3 1;return 0; }错误1:…...
小总结----长度
看了上一篇文章,已经一年没发了。CSDN也越来越封闭了,查点东西,也很不友好。 来个小总结吧:完成团队建设,招聘11人。完成26项开发,内部9项,科创10项。2023发明专利申请两项,软著申请…...
【深度学习】如何选择神经网络的超参数
1. 神经网络的超参数分类 神经网路中的超参数主要包括: 1. 学习率 η 2. 正则化参数 λ 3. 神经网络的层数 L 4. 每一个隐层中神经元的个数 j 5. 学习的回合数Epoch 6. 小批量数据 minibatch 的大小 7. 输出神经元的编码方式 8. 代价函数的选择 9. 权重初始化的方法 …...
jQuery 3.0 新增了哪些特性?(jQuery 3 所引入的那些最重要的变化)
文章目录 前言简介新增特性Use of requestAnimationFrame() for Animationsunwrap() 方法 有变更的特性data() 方法Deferred 对象SVG 文档 已废弃、已移除的方法和属性废弃 bind()、unbind()、delegate() 和 undelegate() 方法移除 load()、unload() 和 error() 方法移除 conte…...
MindStudio学习一 整体介绍
一场景介绍 二 安装介绍 1.LINUX 采用无昇腾硬件采用linux 分部署 2.WINDOWS 3.linux下安装整体步骤 3.1安装依赖 3.2 安装步骤 1.gcc cmake 等依赖 2.python3.7.5 3.pip 安装依赖 4.安装JDK 5.安装 Ascend-cann-toolkit 6.解压安装Mindstudio 7.进入bin路径 ./…...
excel表中慎用合并单元格,多用跨列居中
如下一个excel例表: 要将首行居中,最好的办法如下: 1、选中首行单元格 2、按下ctrl1,调出“设置单元格格式”,选中“对齐”,在“水平对齐”中选择“跨列居中” 3、完成任务 这样居中的好处是:可…...
linux网络编程之UDP编程
linux网络编程之UDP编程 UDP编程模型服务端客户端 tcp与udp的区别 UDP编程模型 服务端 1.创建socket 2.构建服务器协议地址簇 3.绑定 4. 通信 sendto(多了两个参数) send connect #include <stdio.h> #include <sys/types.h> /*…...
YB4556 28V、1A、单节、线性锂电池充电IC
YB4556 28V 、 1A 、单节、线性锂电池充电 IC 概述: YB4556H 是一款完整的采用恒定电流 / 恒定电压的高压、大电流、单节锂离子电池线性充电 IC。最高耐压可达 28V,6.5V 自动过压保护,充电电流可达 1A。由于采用了内部 PMOSFET 架构,加上防倒…...
基于单片机设计的大气气压检测装置(STC89C52+BMP180实现)
一、前言 本项目设计一个大气气压检测装置,该装置以单片机为基础,采用STC89C52作为核心控制芯片,结合BMP180模块作为气压传感器。大气气压,也就是由气体重力在大气层中产生的压力,其变化与天气预报、气象观测以及高度…...
【ChatGLM3-6B】Docker下部署及微调
【ChatGLM2-6B】小白入门及Docker下部署 注意:Docker基于镜像中网盘上上传的有已经做好的镜像,想要便捷使用的可以直接从Docker基于镜像安装看Docker从0安装前提下载启动访问 Docker基于镜像安装容器打包操作(生成镜像时使用的命令࿰…...
编程常见报错信息及解决方案汇总
编程常见报错信息及解决方案汇总 1.Java语言编程 1.1 jdk相关 Java API java8帮助文档 Java最新JDK和API下载(持续同步更新于官网) jdk1.8.0_212 全平台下载 官网下载JDK1.7的方法和步骤 力扣 (LeetCode) PTA题库 1.2 编程工具Eclipse Eclips…...
从Redis反序列化UserDetails对象异常后发现FastJson序列化的一些问题
最近在使用SpringSecurityJWT实现认证授权的时候,出现Redis在反序列化userDetails的异常。通过实践发现,使用不同的序列化方法和不同的fastJson版本,异常信息各不相同。所以特地记录了下来。 一、项目代码 先来看看我项目中redis相关配置信息…...
0001Java程序设计-springboot基于微信小程序批发零售业商品管理系统
文章目录 **摘 要****目录**系统实现开发环境 编程技术交流、源码分享、模板分享、网课分享 企鹅🐧裙:776871563 摘 要 本毕业设计的内容是设计并且实现一个基于微信小程序批发零售业商品管理系统。它是在Windows下,以MYSQL为数据库开发平台…...
中国防锈油市场深度调研与投资战略报告(2023版)
内容简介: 防锈油是在石油类基本组分中加入油溶性缓蚀剂及清净分散剂、抗氧抗腐剂、极压抗磨剂等辅助添加剂,多用于金属制品工序间、运输和贮存时的暂时防锈,是一种较理想、有效的防护方法,具有效果好、使用方便、成本低廉、易施…...
Linux C 基于tcp和epoll在线聊天室
基于tcp和epoll在线聊天室 说明服务端代码 说明 服务端:实现了验证用户是否已经存在(支持最大64用户连接)支持广播用户进入退出聊天室以及用户聊天内容。 这里只提供里服务端代码,如果想要看客户端代码点击这里。 服务端代码…...
C语言学习笔记 - 5.C概述 - C的应用领域
本笔记基于郝斌-C语言自学入门教程整理,配套参考教材为谭浩强《C程序设计(第五版)》,适配VSCode C/C开发环境,核心梳理C语言的核心应用场景,明确C语言的适用边界与不可替代的优势领域。一、C语言应用领域总览C语言的核心应用场景&…...
【地质】一维层状模型大地电磁测深 (MT) 和可控源音频大地电磁测深 (CSAMT) 正演计算研究附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...
别再怕手机丢了!手把手教你将Google身份校验器的OTP密钥备份到Web服务(Spring Boot + Docker实战)
构建高可用OTP备份系统:从手机迁移到私有化Web服务的全链路实践 你是否经历过手机突然丢失或损坏,导致所有绑定的双重验证服务瞬间瘫痪?去年一次登山途中,我的手机从悬崖滑落,随之消失的还有Google Authenticator中二十…...
告别Win10黑屏卡顿:深度排查Explorer.exe高CPU占用与启动失败的关联问题
深度解析Windows 10黑屏与Explorer高CPU占用的关联排查指南 你是否经历过这样的场景:Windows 10系统运行越来越慢,任务管理器显示Explorer.exe进程CPU占用率居高不下,最终在某次重启后直接陷入黑屏状态?这看似两个独立的问题——性…...
Kandinsky-5.0-I2V-Lite-5s GPU显存策略详解:offload机制在24GB卡上的工程实现
Kandinsky-5.0-I2V-Lite-5s GPU显存策略详解:offload机制在24GB卡上的工程实现 1. 模型概述与技术背景 Kandinsky-5.0-I2V-Lite-5s是一款轻量级图生视频模型,能够将单张输入图片转换为约5秒、24fps的短视频。与完整版相比,Lite版本通过模型…...
用JSBSim和VS2019搭建你自己的简易飞行仿真器(从模型加载到数据获取)
用JSBSim和VS2019构建高交互性飞行仿真器的实战指南 飞行仿真技术一直是航空航天领域的重要工具,从专业训练到娱乐游戏,这项技术正在变得越来越普及。对于开发者而言,构建自己的飞行仿真器不仅能深入理解飞行力学原理,还能为更复杂…...
别再死记硬背了!用Fastjson 1.2.62处理JSON,这3个真实业务场景你肯定遇到过
Fastjson实战:3个高频业务场景深度解析 每次看到同事在手动拼接JSON字符串,或者用反射处理复杂嵌套结构时,我都忍不住想分享Fastjson这个利器。作为阿里巴巴开源的JSON处理库,Fastjson在性能上一直保持着领先优势,特别…...
《RocketMQ实战与进阶》08 结合实际场景顺序消费、消息过滤实战
顺序消费 业务场景描述 现在开发一个银行类项目,对用户的每一笔余额变更都需要发送短信通知到用户。如果用户同时在电商平台下单,转账两个渠道在同一时间进行了余额变更,此时用户收到的短信必须顺序的,例如先网上购物,…...
Appium: Windows桌面应用自动化测试(二) 【Accessibility Insights实战指南-元素定位与状态验证】
1. Accessibility Insights工具的核心价值 在Windows桌面应用自动化测试中,元素定位一直是最大的痛点之一。传统Win32应用往往使用复杂的UI框架,动态生成的控件和频繁刷新的界面让测试脚本变得脆弱不堪。我经历过太多因为元素定位失败而导致的测试用例崩…...
2026爬虫入门终极指南:Requests+BeautifulSoup从网页抓取到数据库存储全流程
前言 我见过太多学爬虫的新手:花了一周时间背完了Requests和BeautifulSoup的所有API,但是真的要爬一个实际的网站的时候,还是两眼一抹黑。要么是请求返回403,要么是解析出来的数据全是乱码,要么是存到数据库的时候报错…...
