opencv-直方图

直方图是一种对图像亮度分布的统计表示,它显示了图像中每个灰度级别的像素数量。在OpenCV中,你可以使用cv2.calcHist() 函数计算直方图。

以下是一个简单的示例,演示如何计算和绘制图像的直方图:

python 复制代码
 import cv2
import numpy as np
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() 函数用于计算图像的直方图。它的参数包括:

  • [img]: 输入图像,可以是多通道图像,但在这里我们使用灰度图像。
  • [0]: 通道索引,对于灰度图像只有一个通道,所以使用 0。
  • None: 掩码,通常设置为 None。
  • [256]: 直方图的 bin 数量,表示灰度级别的数量。
  • [0, 256]: 像素值的范围。

绘制直方图使用了 Matplotlib 库,可以根据需要选择其他绘图工具。

直方图有助于理解图像的亮度分布,可以用于调整图像的对比度、亮度等。

相关推荐
袋鼠云数栈4 分钟前
构建金融级数据防线:数栈 DataAPI 的全生命周期管理实践
java·大数据·数据库·人工智能·api
扬大平仔5 分钟前
我用AI写了一个AI助手
人工智能·arcgis
咚咚王者6 分钟前
人工智能之语言领域 自然语言处理 第八章 关系抽取
人工智能·自然语言处理·easyui
云飞云共享云桌面7 分钟前
广东某智能装备工厂8人共享一台服务器
大数据·运维·服务器·人工智能·3d·自动化·电脑
小超同学你好7 分钟前
Transformer 10. Decoder Only Transformer 架构以及每一步骤的详细计算
人工智能·语言模型·transformer
芯盾时代10 分钟前
部署OpenClaw的安全风险
人工智能·安全·ai
chaors12 分钟前
Langchain入门到精通0x05:预制链
人工智能·langchain·ai编程
GWQ33313 分钟前
2026中国南京国际电池及储能技术博览会影响力如何?商机在哪里?
大数据·人工智能
AI工程架构师14 分钟前
langChain 快速入门
人工智能
gustt14 分钟前
RAG 实战:彻底搞懂 LangChain 文本切割器(Splitter)
人工智能·llm