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

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

相关推荐
墨雪遗痕1 天前
HMO分层记忆编排工程思想
人工智能·架构
手写码匠1 天前
手写 AI Prompt Injection 防护系统:从零实现 LLM 安全边界
人工智能·深度学习·算法·aigc
土星云SaturnCloud1 天前
边缘计算赋能工业智能化:重大危险源监测+产线控制+视觉分析一体化解决方案
服务器·人工智能·ai·边缘计算
代码柏拉图1 天前
AI时代如何提问面试者
人工智能·面试·职场和发展
知识浅谈1 天前
人工智能日报 每日AI新闻(2026年5月16日):OpenAI押注金融入口,YouTube扩展AI深伪检测,Google收紧AI搜索操纵规则
人工智能·chatgpt·金融
hyunbar1 天前
扣子(coze)高级实战-【今日头条】输入关键词批量采集,循环写入飞书多维表格
人工智能·ai编程
victory04311 天前
DeepSeek-R1 86页加长版:通过强化学习激励大语言模型的推理能力 技术报告中文翻译
人工智能
郑寿昌1 天前
2026传感器革命:智能感知新纪元
人工智能
杰之行1 天前
Fast-DDS Transport 层架构详解
c++·人工智能
陈天伟教授1 天前
图解人工智能(19)机器学习基本流程
人工智能