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 更鲁棒。
  • 缺点:没有空间信息,对纹理、形状不敏感。
相关推荐
铅笔侠_小龙虾1 小时前
深度学习目录
深度学习
CoovallyAIHub1 小时前
如何让机器看懂视觉世界?从图像匹配理解环境开始
深度学习·算法·计算机视觉
中國龍在廣州1 小时前
李飞飞最新思考:语言模型救不了机器人
人工智能·深度学习·算法·语言模型·自然语言处理·chatgpt·机器人
xwill*1 小时前
3D-GENERALIST: Vision-Language-Action Models for Crafting 3D Worlds
人工智能·pytorch·python·深度学习
蛋王派1 小时前
深度解析 Qwen大语言模型流程:全流程算子逻辑与维度变换详解
深度学习·机器学习·自然语言处理
fantasy_arch1 小时前
残差网络模型demo
网络·深度学习·神经网络
AI-嘉文哥哥2 小时前
ADAS自动驾驶-前车碰撞预警(追尾预警、碰撞检测)系统
人工智能·深度学习·yolo·目标检测·数据分析·课程设计·qt5
andeyeluguo2 小时前
BM25的简单计算实例
深度学习
Blossom.1182 小时前
基于多智能体协作的AIGC内容风控系统:从单点检测到可解释裁决链
人工智能·python·深度学习·机器学习·设计模式·aigc·transformer