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 更鲁棒。
  • 缺点:没有空间信息,对纹理、形状不敏感。
相关推荐
硅谷秋水27 分钟前
世界动作模型:具身智能的下一前沿
大数据·人工智能·深度学习·计算机视觉·语言模型·机器人
大江东去浪淘尽千古风流人物2 小时前
【HaMeR】全Transformer架构的单目3D手部网格重建:ViT-H骨干+跨注意力MANO解码器源码深度解析
深度学习·3d·transformer·vit·手部重建·mano
钓了猫的鱼儿3 小时前
基于深度学习+AI的红外电力设备故障目标检测与预警系统(Python源码+数据集+UI可视化界面+YOLOv11训练结果)
人工智能·深度学习·目标检测
LaughingZhu3 小时前
Product Hunt 每日热榜 | 2026-05-30
人工智能·经验分享·深度学习·神经网络·产品运营
蒟蒻的贤3 小时前
深度学习底层核心原理:损失函数、梯度与参数更新
人工智能·深度学习
谷哥的小弟3 小时前
大模型核心基础知识(14)—神经网络的结构
人工智能·深度学习·神经网络·大模型·大语言模型
大模型最新论文速读4 小时前
SkillOpt:把 skill 文档当成模型权重来训练
论文阅读·人工智能·深度学习·机器学习·自然语言处理
z小猫不吃鱼4 小时前
15 InstructGPT 论文精读:SFT + RLHF 如何让模型听懂指令?
人工智能·深度学习·算法·机器学习·语言模型·自然语言处理·gpt-3
zcg19425 小时前
如何在CV中使用transformer
人工智能·深度学习·transformer
SuperHeroWu75 小时前
【MindSpore】MindSpore 开源深度学习框架
人工智能·深度学习·开源·框架·mindspore