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],如果是彩色图像的传入的参数可以是[0][1][2],它们分别对应着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')

运行结果:

相关推荐
电子科技圈9 分钟前
Durin:Aliro标准赋能,打造无缝移动入户体验
人工智能·mcu·物联网·网络协议·智能家居·智能硬件·iot
AI先驱体验官22 分钟前
AI智能体赛道新机遇:2026机会与挑战深度解析
大数据·人工智能·深度学习·重构·aigc
YUNDUANNET23 分钟前
AI驱动,不止于概念 | VeryCloud联合亚马逊云科技深度解读OpenClaw开发范式革命
人工智能·科技·openclaw
热爱生活的猴子28 分钟前
什么情况是训练好验证差,什么情况判定为收敛慢,什么情况下判定为震荡,什么情况下说明是泛化差
人工智能·深度学习·机器学习
ggabb30 分钟前
以色列的科技实力与全球格局分析
大数据·人工智能
吴佳浩30 分钟前
Claude Code 源码泄露事件深度剖析
人工智能·npm·agent
智算菩萨34 分钟前
【论文精读】AI-assisted rational decision-making:AI 如何辅助理性决策?
论文阅读·人工智能·论文笔记
Flying pigs~~37 分钟前
基于Deepseek大模型API完成文本分类预测功能
java·前端·人工智能·python·langchain·deepseek
饼干哥哥38 分钟前
怎么写好一个AI提示词?10个场景与50个技巧+官方100个教程合集
人工智能
. . . . .40 分钟前
git-ai 项目详解
人工智能·git