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')

运行结果:

相关推荐
AAA阿giao2 分钟前
用 LangChain 玩转大模型:从零搭建你的第一个 AI 应用
javascript·人工智能·langchain·llm·ai编程·ai开发
m0_692457103 分钟前
图像噪点消除
人工智能·算法
Brduino脑机接口技术答疑6 分钟前
TDCA 算法在 SSVEP-BCI 中的时间戳技术要求与工程实现
人工智能·深度学习·机器学习·脑机接口·ssvep
KAI智习7 分钟前
大模型榜单周报(2025/12/27)
人工智能·大模型
duanju6669 分钟前
2025年AI写作工具实战测评:寻找真正适配网文创作的工具
人工智能·ai写作·ai漫剧工具·ai创作工具
musk121211 分钟前
english-12-word-25-12-25 , 单词 legacy Linear scenes 深度学习知识卡片
人工智能·深度学习
丝斯201121 分钟前
AI学习笔记整理(36)——自然语言处理
人工智能·笔记·学习
ar012321 分钟前
AR+AI:人工智能驱动增强现实的无限可能
人工智能·ar
wenzhangli722 分钟前
如何评价钉钉AI1.1新品发布会?垂直战略背后的内耗与垄断隐忧
大数据·人工智能
————A23 分钟前
从 RAG 到故障链图谱:一次设备运维诊断系统的工程反思
人工智能