Python使用matplotlib计算并绘制图像的直方图

除了使用OpenCV计算图像直方图外,matplotlib也提供了直方图计算并绘制功能,只需要把图像(或对应通道)作为参数输入,即可通过matplotlib输出直方图(标准直方图,非条形图表达),特记录下来,示例代码如下:

python 复制代码
import cv2
import matplotlib.pyplot as plt

# 读取图像
image_path = '../data/park.jpg'
image = cv2.imread(image_path)  # 读取彩色图像

# 分离图像通道
b, g, r = cv2.split(image)

# 绘制直方图
plt.figure(figsize=(10, 6))

# 使用matplotlib的hist函数计算并绘制直方图
plt.hist(b.ravel(), bins=256, range=[0, 256], color='blue', alpha=0.7)
plt.hist(g.ravel(), bins=256, range=[0, 256], color='green', alpha=0.7)
plt.hist(r.ravel(), bins=256, range=[0, 256], color='red', alpha=0.7)

# 设置标题和轴标签
plt.title('Histogram of the Image')
plt.xlabel('Intensity Value')
plt.ylabel('Frequency')

# 显示网格
plt.grid(axis='y', linestyle='--', alpha=0.7)

# 显示图表
plt.show()
相关推荐
门框研究员10 小时前
解锁Python的强大能力:深入理解描述符
python
p***h64310 小时前
JavaScript在Node.js中的异步编程
开发语言·javascript·node.js
散峰而望10 小时前
C++数组(二)(算法竞赛)
开发语言·c++·算法·github
Porunarufu10 小时前
Java·关于List
java·开发语言
子不语18011 小时前
Python——函数
开发语言·python
ndjnddjxn11 小时前
Rust学习
开发语言·学习·rust
daidaidaiyu11 小时前
一文入门 LangChain 开发
python·ai
月光技术杂谈11 小时前
实战:C驱动框架嵌入Rust模块的互操作机制与完整流程
c语言·开发语言·rust·ffi·跨语言·bindgen·互操作
t1987512811 小时前
基于MATLAB的指纹识别系统完整实现
开发语言·matlab
笑非不退12 小时前
C# c++ 实现程序开机自启动
开发语言·c++·c#