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

运行结果:

相关推荐
heimeiyingwang4 分钟前
向量数据库在大模型 RAG 中的核心作用与实践
数据库·人工智能·微服务
云道轩14 分钟前
在Rocky Linux 上在线安装OpenClaw 2026.2.13
linux·运维·人工智能·智能体·openclaw
得一录31 分钟前
AI面试·简单题
人工智能·面试·职场和发展
minhuan1 小时前
大模型应用:轻量化视觉语言模型(VLM):基于Qwen2-VL多模态模型实践.87
人工智能·语言模型·自然语言处理·qwen2-vl·轻量化vlm模型
MaoziShan1 小时前
CMU Subword Modeling | 08 Non-Concatenative Morphological Processes
人工智能·机器学习·语言模型·自然语言处理
小程故事多_801 小时前
RAG,基于字号频率的内容切分算法,非常强
人工智能·算法·aigc
IT 行者1 小时前
OpenClaw 浏览器自动化测试的那些坑(一):Linux Snap 版本的 Chromium 无法使用托管模式
linux·运维·服务器·人工智能
肾透侧视攻城狮1 小时前
《掌握 tf.data API:从 Dataset 创建、map/batch/shuffle 操作到预取/缓存优化的完整实战》
人工智能·深度学习·tensorflow·tf.data api·dataset 对象·map/batch/shuff·预取/并行化/缓存机制
大模型任我行1 小时前
百度:动态偏好选择提升LLM对齐稳定性
人工智能·语言模型·自然语言处理·论文笔记
A尘埃1 小时前
深度学习框架:Keras
人工智能·深度学习·keras