OpenCV自学笔记十六:直方图处理

在OpenCV中,直方图(Histogram)是用于表示图像中像素强度分布的一种统计工具。它可以帮助我们了解图像的亮度、对比度、色彩分布等信息。

OpenCV提供了一个函数`cv2.calcHist()`,用于计算图像的直方图。该函数接受图像数组和一些参数,例如要计算的通道数、区间的数量等。它返回一个表示直方图的一维数组。

OpenCV中的直方图可以有不同类型,包括灰度直方图和彩色直方图。

  1. 灰度直方图:对于灰度图像,直方图显示了每个像素强度值(0-255范围内)的频数或频率。它可以帮助我们了解图像中不同强度级别的像素数量,并根据直方图的形状来判断图像的亮度分布。

  2. 彩色直方图:对于彩色图像,直方图显示了每个通道(如红色、绿色、蓝色)的像素强度值的频数或频率。它可以帮助我们理解图像中不同颜色通道的分布情况。

通过分析直方图,我们可以获得以下信息:

  • 对比度:直方图的峰值和分布范围可以提供关于图像对比度的信息。例如,峰值较集中的直方图可能表示高对比度图像,而峰值分布较宽的直方图可能表示低对比度图像。

  • 亮度:灰度直方图可以显示图像中不同亮度级别的像素数量,从而帮助我们判断图像的明暗程度。

  • 色彩分布:彩色直方图可以显示图像中不同颜色通道的像素数量,从而帮助我们了解图像的色彩分布情况。

通过OpenCV中的直方图计算函数,我们可以方便地获取图像的直方图并进行进一步的图像处理、分析和视觉化。以下是一个使用OpenCV计算灰度图像直方图的示例代码:

复制代码
import cv2
import numpy as np
import matplotlib.pyplot as plt

# 读取图像并转换为灰度图像
image = cv2.imread("image.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 计算直方图
hist = cv2.calcHist([gray], [0], None, [256], [0, 256])

# 绘制直方图
plt.plot(hist)
plt.title('Grayscale Histogram')
plt.xlabel('Pixel Value')
plt.ylabel('Frequency')
plt.show()

在上述示例中,首先使用`cv2.imread()`函数读取图像,并使用`cv2.cvtColor()`函数将其转换为灰度图像。

然后,我们使用`cv2.calcHist()`函数计算灰度图像的直方图。该函数接受多个参数,包括要计算的图像、通道数、掩码等。在这里,我们只计算单通道的直方图(灰度图像),因此将通道数设置为0

`calcHist()`函数还可以指定区间数量和范围。在本例中,我们将区间数量设置为256,表示将图像像素值划分为256个区间。范围设为0, 256,表示像素值的范围为0到255。

最后,我们使用Matplotlib库的`plot()`函数绘制直方图,并使用`title()`、`xlabel()`和`ylabel()`函数添加标题和坐标轴标签。最后,通过调用`show()`函数显示直方图。

相关推荐
秦先生在广东7 分钟前
Worktrunk: 面向并行 AI Agent 工作流的 Git Worktree 管理 CLI
人工智能
韩曙亮12 分钟前
【AI 大模型】国内各平台 AI 大模型 价格、性能 对比分析 ② ( 智谱 BigModel | 腾讯云 TokenHub | 千问 AI 平台 )
人工智能·ai·大模型·腾讯云·ai大模型·千问·智谱
YHL14 分钟前
🧠 Agent 记忆进阶:总结压缩与向量检索 —— 从截断到 Milvus 长期记忆
前端·人工智能
llilian_1621 分钟前
时间统一系统 高精度时统设备选购避坑指南 授时系统
大数据·网络·人工智能·功能测试·单片机·嵌入式硬件·51单片机
仙魁XAN1 小时前
【WorkBuddy·基础入门】第 四 篇 :模式、技能、专家、连接器一次讲清
人工智能·workbuddy·workbuddy 基础入门·workbuddy 工具
呆萌很1 小时前
torch.nan_to_num 函数
人工智能
2601_958352901 小时前
还要写 AEC 算法?0 代码 + 6 个引脚,F-18 让通话清晰度提升 300%
人工智能·算法·降噪消回音
千里码aicood1 小时前
基于机器学习的雷达低慢小目标识别技术的研究
人工智能·机器学习
llilian_161 小时前
标准时间间隔发生器应用解决方案 脉冲发生器 时间测量仪
大数据·网络·人工智能·功能测试·单片机·嵌入式硬件·51单片机
世岩清上1 小时前
展厅数字内容同质化严重,怎样打造专属叙事风格?
大数据·前端·javascript·人工智能·html·音视频·展厅改造