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

运行结果:

相关推荐
jkyy2014几秒前
食材图像识别与个性化饮食:智能家电如何重构膳食健康管理?
大数据·人工智能·物联网·健康医疗
kisshuan123966 分钟前
基于Mask-RCNN与Res2Net的排水系统缺陷检测与分类
人工智能·数据挖掘
P.H. Infinity11 分钟前
【QLIB】一、系统架构
人工智能·金融
搬砖的kk14 分钟前
openJiuwen 快速入门:使用华为云大模型搭建 AI 智能体
数据库·人工智能·华为云
Gavin在路上22 分钟前
SpringAIAlibaba之从执行生命周期到实战落地(7)
人工智能
万俟淋曦29 分钟前
【论文速递】2025年第50周(Dec-07-13)(Robotics/Embodied AI/LLM)
人工智能·深度学习·机器人·大模型·论文·robotics·具身智能
没有不重的名么38 分钟前
When Hypergraph Meets Heterophily: New Benchmark Datasets and Baseline
人工智能·深度学习·opencv·计算机视觉·超图
zxsz_com_cn1 小时前
设备预测性维护优势全景解读:安全、降本、增效与可量化ROI
人工智能
爬点儿啥1 小时前
[Ai Agent] 13 用 Streamlit 为 Agents SDK 打造可视化“驾驶舱”
人工智能·ai·状态模式·agent·streamlit·智能体
机器学习算法与Python实战1 小时前
腾讯翻译大模型,手机可运行
人工智能