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

相关推荐
泯泷21 分钟前
为什么 AI 会"失忆"?——读懂 Agent 的记忆系统(一)
人工智能·算法·agent
数字供应链安全产品选型23 分钟前
智能体与代码安全一体化选型指南:跳出功能清单,以运行时硬指标衡量真实防护能力
网络·人工智能
泯泷26 分钟前
AI 该怎样"记笔记"?——四种记忆格式与认知科学(二)
人工智能·agent·ai编程
港股研究社34 分钟前
餐饮IPO冰封期,袁记食品的“供应链平台”启示
大数据·人工智能·物联网
重生之我是小技39 分钟前
2026 年 YouTube 与其他平台运营测评:流量、变现与内容生态全解析
大数据·人工智能
小蒋观天下40 分钟前
两轮车检测AI摄像头:场景分化下的行业竞争与卡位机遇
人工智能·安全·计算机视觉·语音识别·ai大模型
无忧智库44 分钟前
做AI短剧的工具有哪些?按环节拆分工具链与提示词准备方法
人工智能
小宋10211 小时前
SQL + RAG 混合问答实战:结构化指标与文档证据如何统一路由
java·jvm·人工智能·sql
Tartly1 小时前
本地跑大模型,数据不用出内网|NUC 16 Pro
大数据·人工智能