HSV 3D Histogram(直方图)全局特征提取

🌈 1. 什么是 HSV?

HSV 是一种颜色空间(Color Space),和我们更熟悉的 RGB(红绿蓝)不同,HSV 更接近人类对颜色的感知方式。它由三个分量组成:

  • H(Hue,色调):表示颜色的种类,比如红色、绿色、蓝色等。取值范围通常是 0°--360°(在 OpenCV 中常被归一化到 0--180,因为用 8 位图像表示)。
  • S(Saturation,饱和度):表示颜色的纯度或鲜艳程度。0 表示灰色,越高越鲜艳。
  • V(Value,明度/亮度):表示颜色的明亮程度。0 是黑色,越高越亮。

所以一张彩色图像,在 HSV 空间中,每个像素都有一个 (H, S, V) 的三元组。


📊 2. 什么是直方图(Histogram)?

直方图是一种统计工具,用来表示某个范围内数值出现的频率。

例如:

  • 对灰度图像做直方图,就是统计 0~255 每个灰度值出现了多少次。
  • 对 RGB 图像,可以分别对 R、G、B 通道做一维直方图。

🧊 3. 那什么是 "3D Histogram"?

因为 HSV 有 三个通道(H, S, V) ,我们可以把这三个维度联合起来,做一个 三维直方图

想象一个三维网格:

  • X 轴是 H(比如分成 10 个区间)
  • Y 轴是 S(比如分成 10 个区间)
  • Z 轴是 V(比如分成 10 个区间)

那么整个空间就被划分成 10×10×10=1000 个小"箱子"(bins)。

对于图像中的每一个像素,我们看它的 (H, S, V) 值落在哪个"箱子"里,就给那个箱子计数 +1。

最后得到一个长度为 1000 的向量(你可以把它展平成一维),这个向量就叫做 HSV 3D Histogram


🖼️ 4. 为什么用它来做"全局特征"?

  • 全局特征的意思是:用一个固定长度的向量来描述整张图像的整体特性(而不是关注局部细节,比如边缘、角点等)。
  • HSV 3D 直方图捕捉了整张图像的颜色分布信息。比如:
    • 冰箱(Fridge)可能有很多白色和灰色(低饱和度、高明度)
    • 木制桌子(Table)可能有很多棕色(特定 Hue 范围,中等饱和度)
  • 虽然它丢失了空间位置信息(比如颜色在哪一块),但它计算简单、对旋转/尺度变化有一定鲁棒性,适合做初步分类。

💡 举个简单例子(用 OpenCV):

python 复制代码
import cv2
import numpy as np

# 读取图像
img = cv2.imread('chair.jpg')
# 转换到 HSV 空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 计算 3D 直方图:H 分 50 份,S 分 60 份,V 分 60 份(可以根据需要调整)
hist = cv2.calcHist([hsv], [0, 1, 2], None, [50, 60, 60], [0, 180, 0, 256, 0, 256])

# 展平成一维向量(全局特征向量)
feature = hist.flatten()  # 长度 = 50*60*60 = 180,000

注意:实际使用时,为了减少维度,通常会降低 bins 数量(比如 [16, 16, 16] → 4096 维),或者做归一化(L1/L2)。


✅ 总结

  • HSV 3D Histogram = 在 HSV 颜色空间中,对 H、S、V 三个通道联合统计颜色出现频率的三维直方图。
  • 它是一种全局颜色特征,可以作为图像分类的输入特征之一。
  • 优点:简单、快速、对光照变化比 RGB 更鲁棒。
  • 缺点:没有空间信息,对纹理、形状不敏感。
相关推荐
yiyu07169 小时前
3分钟搞懂深度学习AI:实操篇:卷积层
人工智能·深度学习
CoovallyAIHub18 小时前
181小时视频丢给GPT-5,准确率只有15%——南大联合NVIDIA等五校发布多模态终身理解数据集
深度学习·算法·计算机视觉
CoovallyAIHub18 小时前
CVPR 2026 | GS-CLIP:3D几何先验+双流视觉融合,零样本工业缺陷检测新SOTA,四大3D工业数据集全面领先!
深度学习·算法·计算机视觉
数据智能老司机1 天前
PyTorch 深度学习——使用神经网络来拟合数据
pytorch·深度学习
数据智能老司机1 天前
PyTorch 深度学习——用于图像的扩散模型
pytorch·深度学习
数据智能老司机1 天前
PyTorch 深度学习——Transformer 是如何工作的
pytorch·深度学习
yiyu07161 天前
3分钟搞懂深度学习AI:环境安装与工具使用
人工智能·深度学习
数据智能老司机2 天前
PyTorch 深度学习——使用张量表示真实世界数据
pytorch·深度学习
数据智能老司机2 天前
PyTorch 深度学习——它始于一个张量
pytorch·深度学习
yiyu07163 天前
3分钟搞懂深度学习AI:自我进化的最简五步法
人工智能·深度学习