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 绘制了直方图。

相关推荐
老郑聊AI业财智造2 分钟前
给大模型装上“金融之眼”:Kronos-Report的量化预测架构与技术全景剖析
人工智能·python·深度学习·语言模型·金融·架构·软件工程
chunmiao30323 分钟前
GPT-5.6一个月两次降价,大模型API价格战来了
人工智能·gpt
广州智造3 分钟前
HyperMesh 产品功能清单|有限元前处理软件|HyperMesh 中国代理
人工智能·教程·设计·cad·建模·cae
极客猴子5 分钟前
录音内容需要对外翻译:录音转写自动翻译工具横评
人工智能·自然语言处理·机器翻译
beiju5 分钟前
别把品牌手册塞进 Prompt:营销 Agent 的五层上下文架构
人工智能
柳叶方舟6 分钟前
Nature Aging IF=19.4 | Transformer聚类框架:纵向电子健康记录解析阿尔茨海默病与帕金森病亚型
论文阅读·人工智能·深度学习·transformer·健康医疗·聚类
vivo互联网技术8 分钟前
VINS-120K: 基于大规模4K数据集的超高清图像编辑 | CVPR 2026
计算机视觉·图像识别
架构师汤师爷8 分钟前
WorkBuddy 保姆级教程开源了!600 多篇 Agent 资料一次性放出
人工智能
辰辉创聚11 分钟前
重组细胞因子全解析:定义、分类与应用指南
人工智能·eclipse·emacs·白细胞介素·重组蛋白·重组细胞因子
小小测试开发12 分钟前
RAG评测:把忠实度、检索命中率、噪声敏感度做成可回归的流水线
人工智能·数据挖掘·回归·kotlin