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

运行结果:

相关推荐
不会用AI的老炮6 分钟前
【AI coding 智能体设计系列-07】规约驱动:让交付可复现的Spec工作流
人工智能·ai·ai编程
产品人卫朋19 分钟前
「产品、IPD、战略、流程」知识图谱速查清单.v7.0
人工智能·知识图谱·产品经理·需求分析·创业·ipd流程·华为ipd
用户51914958484520 分钟前
深入剖析CVE-2025-41115:Grafana企业版SCIM特权升级漏洞利用实践
人工智能·aigc
苏子铭22 分钟前
个人笔记,关于数学工具箱功能规划与架构设计
人工智能·机器学习
盈创力和200723 分钟前
从“感知”到“认知”:基于边缘AI的以太网多参量环境传感器如何重构工业物联终端?
人工智能·以太网多合一传感器·以太网温湿度气体多参量传感器
rit843249934 分钟前
基于高斯混合模型(GMM)的语音识别系统:MATLAB实现与核心原理
人工智能·matlab·语音识别
容智信息37 分钟前
Hyper Agent:企业级Agentic架构怎么实现?
人工智能·信息可视化·自然语言处理·架构·自动驾驶·智慧城市
Julyers39 分钟前
【Paper】FRST(快速径向对称变换)算法
图像处理·人工智能·计算机视觉·圆检测
Bony-1 小时前
驾驶员行为检测:基于卷积神经网络(CNN)的识别方法
人工智能·神经网络·cnn
fie88891 小时前
基于蚁群算法求解带时间窗的车辆路径问题
数据库·人工智能·算法