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 库,可以根据需要选择其他绘图工具。

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

相关推荐
kuankeTech几秒前
生鲜进出口贸易数字化转型:智慧外贸ERP解决方案破解行业痛点
大数据·人工智能·开源软件·软件开发·erp
liliangcsdn2 分钟前
对多模态扩散模型UNet架构的探索
大数据·人工智能
杜子不疼.2 分钟前
AI Agent 开发指南:LangChain + 工具调用,构建自动化任务流
人工智能·langchain·自动化
西西弗Sisyphus2 分钟前
神经网络的正向传播和反向传播 包括可视化源码
人工智能·深度学习·神经网络·反向传播·正向传播
Lethehong1 小时前
昇腾Atlas 800T平台下Qwen-14B大语言模型的SGLang适配与性能实测
人工智能·语言模型·sglang·昇腾npu
杜子不疼.1 小时前
Spring AI 与向量数据库:构建企业级 RAG 智能问答系统
数据库·人工智能·spring
ayingmeizi1631 小时前
AI CRM赋能全链路数字化如何重塑医械企业渠道竞争力?
人工智能
————A1 小时前
从 RAG 召回失败到故障链推理
人工智能·rag
Chase_______2 小时前
AI提效指南:Nano Banana 生成精美PPT与漫画
人工智能·powerpoint
雨大王5122 小时前
汽车产业供应链优化的可行策略及案例分析
人工智能·机器学习