Opencv | 直方图均衡化

python 复制代码
import cv2 #opencv 读取的格式是BGR
import numpy as np
import matplotlib.pyplot as plt #Matplotlib是RGB
%matplotlib inline
python 复制代码
def cv_show(img,name):
    cv2.imshow(name,img)
    cv2.waitKey()
    cv2.destroyAllWindows()

cv2.calcHist(images,channels,mask,histSize,ranges)

  • images: 原图像图像格式为uint8 或 float32。当传入函数时应用中括号\[\]括来例如img

  • channels: 如果灰度图它的值就是0,如果是彩色图像的传入的参数可以是012,它们分别对应着BGR。

  • mask: 掩模图像。统整幅图像的直方图就把它为None。但是如果你想统图像某一分的直方图的你就制作一个掩模图像并使用它。

  • histSize: BIN 的数目。也应用中括号括来

  • ranges: 像素值范围常为0256

cat.jpg

python 复制代码
img = cv2.imread('cat.jpg',0)#0表示灰度图
hist = cv2.calcHist([img],[0],None,[256],[0,256])
hist.shape
python 复制代码
plt.hist(img.ravel(),256);
plt.show()

可视化运行结果:

直方图均衡化:

python 复制代码
equ = cv2.equalizeHist(img)
plt.hist(equ.ravel(),256)
plt.show()
python 复制代码
res = np.hstack((img,equ))
cv_show(res,'res')

运行结果:

自适应直方图均衡化:

python 复制代码
clahe = cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8,8))
python 复制代码
res_clahe = clahe.apply(img)
res = np.hstack((img,equ, res_clahe))
cv_show(res,'res')

运行结果:

相关推荐
林澈在路上6 分钟前
2026生成后可发行的AI音乐工具怎么选
人工智能·版权·ai音乐·音乐发行·melo音乐
LoneEon11 分钟前
CentOS7 部署 Nacos3.x 集群实战:从注册中心到 AI 管理中心
linux·人工智能·nacos
跟我学机器学习19 分钟前
Qwen3 Reranking原理与使用:重排模型在 RAG 中的作用
人工智能·深度学习·transformer
袁俪21 分钟前
数字孪生驱动大模型
人工智能
江润舟23 分钟前
万物|炼器:从零手搓工业级旋转目标检测网络·卷4 —— 模块化重构(一)
人工智能·深度学习
行者全栈架构师33 分钟前
【鸿蒙心迹】从 TypeScript 迁移到 ArkTS——10 个编译报错逐个拆解(HarmonyOS 7.x)
前端·人工智能·开源
障碍的枫子34 分钟前
初识ai Agent
人工智能
zhanghaha131434 分钟前
AI工具WorkBuddy篇:8_换电脑后,数据如何迁移
人工智能
独立开发者阿乐40 分钟前
DeepSeek 会引用什么样的网页内容
人工智能·结构化数据·geo优化·ai爬虫·llms.txt·deepseek收录
成旭先生1 小时前
银行卡识别 API:一张照片读出卡号、BIN 与发卡行
人工智能·算法·ocr·api接口·金融科技·银行卡识别·支付风控