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()`函数显示直方图。

相关推荐
To_OC1 分钟前
搭 RAG 的第一个坎:网页检索答非所问?聊聊文档加载与分块的那些坑
人工智能·llm·agent
科技林总2 分钟前
图像处理领域的技术发展
人工智能·深度学习·计算机视觉
lauo3 分钟前
掌心核爆:iQOO首款小平板搭载2nm骁龙8E6,开启AI原生计算的移动终端新纪元
前端·人工智能·智能手机·重构·电脑·ai-native
wenb1n4 分钟前
MySQL诊断系列(3/6):索引分析——5个SQL揪出“僵尸索引”
数据库·人工智能·编程语言
阿里云大数据AI技术13 分钟前
从向量存储到 Agentic 数据基础设施:Paimon × Milvus 如何构建 AI 原生多模态数据湖
人工智能·agent
字节跳动视频云技术团队21 分钟前
一句话上线 AI Agent 应用:火山 Supabase + IGA Pages 全栈部署实践
人工智能·agent
caimouse21 分钟前
MM 学习笔记 01:miarm.h 核心头文件分析
笔记·学习·reactos
QN1幻化引擎26 分钟前
SFA 信号场注意力:用8KB参数换248x KV Cache压缩,边缘设备也能跑长序列
人工智能·算法·gitee·gitlab
神奇小汤圆42 分钟前
为什么 skills 装得越多,AI 越笨?最火的那个 skill 只有一句话
人工智能
段一凡-华北理工大学42 分钟前
向量数据库实战:选型、调优与落地~系列文章03:向量相似度算法全解:余弦、欧氏、内积,到底该用哪个?
大数据·数据库·人工智能·算法·机器学习·向量相似度·高炉炼铁