opencv-2D直方图

cv2.calcHist() 是 OpenCV 中用于计算直方图的函数。它可以计算一维或多维直方图,用于分析图像中像素值的分布。

基本的语法如下:

python 复制代码
hist = cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]])

参数说明:

  • images: 输入图像,可以是单通道或多通道图像 。在计算多通道图像的直方图时,要将通道分别传递给 channels 参数。
  • channels: 要考虑的通道的索引,对于灰度图像,通常是 [0]对于彩色图像,可以指定 [0][1][2] 分别对应蓝色、绿色、红色通道
  • mask: 可选参数,用于指定计算直方图的区域。如果不指定,整个图像将被考虑。
  • histSize: 表示每个通道的直方图槽(bin)的数量,对于灰度图像通常是 [256],对于彩色图像可以设置不同通道的槽的数量。
  • ranges: 表示像素值的范围,通常为 [0, 256]
  • hist: 输出的直方图,如果不提供,则函数会创建一个。
  • accumulate: 可选参数,如果设置为 True,则直方图在多次计算时不会被清零,而是累积起来。

以下是一个简单的示例,演示如何计算一幅灰度图像的直方图:

python 复制代码
import cv2
import matplotlib.pyplot as plt
# 读取灰度图像
img = cv2.imread( r"C:\Users\mzd\Desktop\opencv\2.jpg", cv2.IMREAD_GRAYSCALE)
# 计算直方图
hist = cv2.calcHist([img], [0], None, [256], [0, 256])
# 绘制直方图
plt.plot(hist)
plt.title('Histogram')
plt.xlabel('Pixel Value')
plt.ylabel('Frequency')
plt.show()
# 显示原始图像
cv2.imshow('Image', img)
# 等待用户按下任意键
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个示例中,cv2.calcHist() 函数计算了一幅灰度图像的直方图,然后使用 Matplotlib 绘制了直方图。

相关推荐
love530love2 分钟前
EPGF 新手教程 11在 PyCharm(中文版 GUI)中创建 uv 环境,并把 uv 做到“项目自包含”(工具本地化为必做环节)
ide·人工智能·python·pycharm·conda·uv·epgf
Fabarta技术团队4 分钟前
响应北京人工智能行动计划,枫清科技共筑AI创新高地
人工智能·科技
得贤招聘官5 分钟前
判断AI招聘系统成熟度的3个硬指标
人工智能
Lkygo6 分钟前
ragflow 构建本地知识库指南
人工智能·python·语言模型
晟诺数字人6 分钟前
数字人、AI数字人、虚拟数字人、3D数字人之间的区别于应用场景
大数据·人工智能·3d·数字人
木卫四科技7 分钟前
【CES 2026】木卫四科技发布R-IDPS,护航具身机器人“Chat GPT时刻”安全落地!
大数据·人工智能
Codebee7 分钟前
# 大厂AI全是黑话?Ooder靠Skill技术3天落地企业级应用,这才是真实用!
人工智能
He_Donglin8 分钟前
Data Mining| 类型变量编码(乳腺癌威斯康星数据集/葡萄酒数据集/鸢尾花数据集)
人工智能·数据挖掘
TDengine (老段)1 小时前
TDengine C/C++ 连接器进阶指南
大数据·c语言·c++·人工智能·物联网·时序数据库·tdengine
lixzest1 小时前
PyTorch与Transformer的关系
人工智能·pytorch·transformer