🎓 总站 🏠 本课目录 01 图像基础 02 空间滤波 03 频率滤波 04 彩色处理 05 神经网络 06 表征学习 07 Transformer 08 CNN 09 目标识别 10 生成式模型
视觉计算 · 第4章

彩色图像处理

三原色与彩色模型(RGB / CMY(K) / HSI)· 伪彩色 · 全彩色处理 · 彩色变换 · 彩色平滑与锐化。

📚 学习进度
0%

🎯学习目标

  • 理解研究彩色图像处理的意义与三原色、二次色概念;
  • 掌握 RGB、CMY/CMYK、HSI 三种彩色模型及其转换关系;
  • 理解伪彩色处理(强度分层、灰度到彩色变换)及应用;
  • 理解全彩色处理的两种方式(分量处理 / 向量处理);
  • 掌握彩色变换(补色、色调变换、HSI 直方图均衡);
  • 理解彩色图像平滑与锐化,及在 RGB 与 HSI 中的差异。

1彩色基础与三原色

为什么研究彩色图像处理?

  • 符合人类视觉特点:人能辨别几千种颜色色调和亮度,但只能辨别几十种灰度层次;
  • 颜色是有用的描绘子:简化目标区分、便于目标识别。

白光经棱镜分解为连续彩色谱(红、橙、黄、绿、蓝、紫 6 个较宽区域)。

类别颜色
三原色(光)红 R、绿 G、蓝 B
二次色(原色相加)黄=红+绿、青=绿+蓝、深红(品红)=红+蓝
💡 加色 vs 减色光的三原色 RGB 是加色系统(相加得白);颜料(印刷)的原色 CMY 是减色系统(相加得黑)。处理方式分为:全彩色处理(数码相机/摄像机/彩色扫描仪)与伪彩色处理(给灰度赋色)。
💡 通俗理解:为什么我们能看到彩色?

人眼有三种感光细胞:

  • 锥状细胞L:对红光敏感
  • 锥状细胞M:对绿光敏感
  • 锥状细胞S:对蓝光敏感

大脑根据这三种细胞的响应比例,感知出"颜色"。

所以:任何颜色都可以用 R、G、B 三种颜色混合

举例:

  • 红色 = (255, 0, 0)
  • 绿色 = (0, 255, 0)
  • 蓝色 = (0, 0, 255)
  • 黄色 = 红 + 绿 = (255, 255, 0)
  • 白色 = 红 + 绿 + 蓝 = (255, 255, 255)
  • 黑色 = 都没有 = (0, 0, 0)

2RGB 彩色模型 ⭐

直接感知 R、G、B 三个分量,是图像成像、显示、打印等设备的基础。可用单位立方体表示:

黑(0,0,0) 绿 白(1,1,1)
图1 · RGB 立方体:黑在原点,白在对角顶点,三原色与三二次色分居各顶点
  • 黑色位于原点 (0,0,0),二次色位于另外三个角;
  • 像素深度:每个像素所用比特数。24-bit RGB(每分量 8 bit)颜色数 = $(2^8)^3 = $16,777,216 ≈ 1670 万色
💡 通俗理解:RGB = 三种颜色的"配方"

RGB模型就像调色板:

  • R(红):放多少红色
  • G(绿):放多少绿色
  • B(蓝):放多少蓝色

每个分量范围:0-255。0 = 不放这个颜色,255 = 放满这个颜色。

RGB是"加色模型":混合越多颜色 → 越亮,R+G+B = 白色。用途:显示器、相机、手机。

对比CMY(减色模型):混合越多颜色 → 越暗,C+M+Y = 黑色。用途:打印机、颜料。

为什么显示器用RGB?显示器发光,光叠加变亮;打印机反射光,颜料叠加变暗。

💡 通俗理解:一张图有多少种颜色?

RGB颜色总数:

  • R有256级,G有256级,B有256级
  • 总共 256×256×256 = 16,777,216 种颜色(约1600万种)

实际图像用不了这么多:

  • 一张1000×1000的图只有100万个像素,最多100万种不同颜色
  • 通常更少(很多像素颜色相同)

存储计算:

  • 灰度图:每像素1字节(8位)
  • RGB图:每像素3字节(24位)
  • RGBA图:每像素4字节(32位,多一个透明通道)

例子:1920×1080 RGB图 = 1920×1080×3 ≈ 6MB;4K RGB图 = 3840×2160×3 ≈ 24MB

💡 通俗理解:RGB 详细解析

核心意思:

RGB = 红绿蓝三种颜色的"配方",混合起来能表示几乎所有颜色

举个例子:

常见颜色的RGB值:

    颜色    R    G    B    十六进制
    红色    255  0    0    #FF0000
    绿色    0    255  0    #00FF00
    蓝色    0    0    255  #0000FF
    黄色    255  255  0    #FFFF00(红+绿)
    青色    0    255  255  #00FFFF(绿+蓝)
    品红    255  0    255  #FF00FF(红+蓝)
    白色    255  255  255  #FFFFFF(全混)
    黑色    0    0    0    #000000(都没有)

颜色混合规律:
    红 + 绿 = 黄
    绿 + 蓝 = 青
    红 + 蓝 = 品红
    红 + 绿 + 蓝 = 白色

存储计算:
    每个像素 = 3字节(R、G、B各1字节)
    1920×1080图像 = 1920×1080×3 = 6,220,800字节 ≈ 6MB

生活类比:

RGB就像调色板上的三种颜料,不同比例混合能调出不同颜色。显示器就是用无数个RGB小灯组成的。

为什么这样设计:

因为人眼有三种锥状细胞,分别对红、绿、蓝最敏感。所以用这三种颜色就能混合出人眼能感知的几乎所有颜色。

3CMY / CMYK 模型

CMY(青 Cyan、深红 Magenta、黄 Yellow)用于在纸上沉积颜料的设备,如彩色打印机/复印机。RGB 与 CMY 值都归一化到 [0,1]:

RGB → CMY:  $$C = 1 - R,   M = 1 - G,   Y = 1 - B$$

CMYK:打印中主要颜色是黑色,等量 CMY 理论上产生黑色但不纯,故在 CMY 基础上加入纯黑 K,形成 CMYK 彩色空间(n=4)。

⭐ 为什么加 K三色油墨叠印的"黑"偏暗褐且费墨,加入单独的黑色墨(K)使黑色更纯、更省彩色墨、文本更清晰。
💡 通俗理解:CMY/CMYK 详细解析

核心意思:

CMY = 青品黄,是印刷用的"减色模型",和RGB相反

举个例子:

RGB是加色(光叠加变亮):
    红光 + 绿光 = 黄光
    红 + 绿 + 蓝 = 白光

CMY是减色(颜料叠加变暗):
    青 + 品红 = 蓝(吸收了绿)
    青 + 黄 = 绿(吸收了红)
    品红 + 黄 = 红(吸收了蓝)
    青 + 品红 + 黄 = 黑(理论上)

CMYK的K是什么?
    理论上C+M+Y=黑,但实际印刷:
    - 三种颜料混合不纯,会变成深棕色
    - 所以单独加一个黑色(K=Key)
    - 黑色用得最多,单独加更省墨

RGB转CMY:
    C = 255 - R
    M = 255 - G
    Y = 255 - B

例子:
    红色(255,0,0) → 青色(0,255,255)
    白色(255,255,255) → 黑色(0,0,0)

生活类比:

RGB像手电筒照在白墙上,光叠加变亮;CMY像颜料调色,颜料叠加变暗。显示器用RGB(发光),打印机用CMYK(反射光)。

为什么这样设计:

印刷和显示的物理原理不同。显示器自己发光,光混合越来越亮(加色);印刷品靠反射环境光,颜料吸收光,混合越多吸收越多,越来越暗(减色)。

4HSI 彩色模型 ⭐

HSI(Hue 色调、Saturation 饱和度、Intensity 亮度)更符合人描述颜色的方式:

分量含义
H 色调描述一种纯色的颜色属性(纯红、纯黄…)
S 饱和度纯色被白光稀释的程度
I 亮度发光强度的消色概念(主观),与彩色信息无关
I 亮度轴 S H H=角度, S=半径, I=高度
图2 · HSI 圆锥/双锥:亮度沿中轴,色调为绕轴角度,饱和度为离轴半径
RGB → HSI($$R,G,B$$ 归一化):
$$I = (R+G+B)/3$$
$$S = 1 - 3 \cdot \min(R,G,B)/(R+G+B)$$
$$H = \theta$$           (当 $$B \leq G$$)      其中
$$H = 360° - \theta$$    (当 $$B > G$$)      $$\theta=\arccos\left\{ \frac{(R-G)+(R-B)}{2} \Big/ \sqrt{(R-G)^2+(R-B)(G-B)} \right\}$$
⭐ HSI 的优势亮度 I 与色彩(H、S)分离:I 与彩色信息无关,可避免光照明暗的干扰,只分析反映色彩本质的 H 和 S。广泛用于计算机视觉、图像检索、视频检索。
💡 通俗理解:HSI = 更符合人类直觉的颜色描述

RGB的问题:

  • 不直观((200,100,50)是什么颜色?)
  • 难以调整(想变亮一点怎么改?)

HSI的优势:

  • H(色调)= 什么颜色(红/绿/蓝/黄...)
  • S(饱和度)= 颜色有多纯(鲜艳/灰暗)
  • I(亮度)= 有多亮(明/暗)

类比:

  • H = 选什么颜色的颜料
  • S = 颜料纯不纯(纯色 vs 加了白色)
  • I = 灯光亮不亮

举例:

  • 鲜艳的红花:H=红色,S=高,I=中
  • 灰色的墙:H=任意,S=低,I=中
  • 黑暗中的红点:H=红色,S=高,I=低

调整图像更直观:想变亮?只调I。想更鲜艳?只调S。想换颜色?只调H。

💡 通俗理解:HSI 详细解析

核心意思:

HSI = 色调、饱和度、亮度,更符合人类描述颜色的方式

举个例子:

描述一辆红色汽车:

用RGB(不直观):
    (200, 50, 30) ← 这是什么颜色?要算一下才知道

用HSI(很直观):
    H = 0°(红色)
    S = 85%(很鲜艳)
    I = 40%(比较暗)

HSI的三个分量:
    H(Hue)= 色调 = "什么颜色"
        0° = 红色
        120° = 绿色
        240° = 蓝色
        360° = 又回到红色

    S(Saturation)= 饱和度 = "有多鲜艳"
        0% = 灰色(没有颜色)
        100% = 纯色(最鲜艳)

    I(Intensity)= 亮度 = "有多亮"
        0% = 黑色
        100% = 最亮

调整图像更直观:
    想变亮?只调I(亮度)
    想更鲜艳?只调S(饱和度)
    想换颜色?只调H(色调)

生活类比:

H像选什么颜色的颜料,S像颜料纯不纯(纯色 vs 加了白色),I像灯光亮不亮。

为什么这样设计:

因为人类描述颜色就是说"红色的、鲜艳的、亮的",而不是说"(200,50,30)"。HSI把亮度和颜色分开,这样调整亮度不会改变颜色本身,处理起来更符合直觉。

5伪彩色图像处理

伪彩色(假彩色)处理:根据一定准则对灰度值赋以彩色。原因:人能辨别上千种颜色,却只能辨别二十几种灰度,赋色便于观察解释。两种技术:

🪜

强度分层

Intensity Slicing
把图像看作三维函数,用平行于坐标面的平面切割,不同灰度区间赋不同颜色。如甲状腺模型分 8 个彩色区、焊点检测(255 赋一种色)
🎨

灰度→彩色变换

Gray-to-Color
对每个像素灰度执行 3 个独立变换,结果分别送入显示器红、绿、蓝通道,合成彩色图。如 X 光行李安检中突出爆炸物
💡 区分三类图像伪彩色图像(灰度赋色得到)、真彩色图像(真实采集的彩色)、单色图像(灰度)。伪彩色不是物体真实颜色,只为增强可视性。
💡 通俗理解:伪彩色处理 详细解析

核心意思:

伪彩色 = 把灰度图"上色",让不同的灰度显示不同的颜色

举个例子:

原始灰度图(医学CT):
    0 = 黑色(背景)
    100 = 深灰(肌肉)
    200 = 浅灰(骨骼)
    255 = 白色(金属)

伪彩色映射:
    0 → 黑色(背景)
    50 → 蓝色(低密度)
    100 → 绿色(肌肉)
    150 → 黄色(中等密度)
    200 → 红色(骨骼)
    255 → 白色(金属)

效果:
    原本灰蒙蒙的CT图
    → 不同组织显示不同颜色
    → 更容易区分肌肉、骨骼、病变

常见伪彩色方案:
    热力图:黑→红→黄→白
    彩虹图:红→橙→黄→绿→蓝→紫
    铁蓝色:黑→蓝→青→白

生活类比:

伪彩色像给黑白照片"上色",不是真的颜色,是"假"的颜色。目的是让人眼更容易区分不同的灰度。

为什么这样设计:

人眼只能辨别二十几种灰度,但能辨别上千种颜色。把灰度映射成彩色,原本看起来差不多的灰度差异就能一眼看出来。常用于医学图像(让病变更明显)、热成像(温度用颜色表示)、地形图(海拔用颜色表示)。

6全彩色图像处理基础

全彩色处理研究分两大类:

方式做法
分量处理分别处理每一分量图像,然后合成彩色图像
向量处理直接对彩色像素处理:3 个颜色分量构成像素向量 c=[R,G,B]ᵀ
💡 两者等价的条件对于线性、邻域无关的操作(如逐像素映射),分量处理与向量处理结果相同;但涉及邻域或非线性时(如梯度幅值),两者可能不同。
💡 通俗理解:全彩色图像处理 详细解析

核心意思:

全彩色处理 = 对RGB三个通道分别处理,或者转换到HSI空间处理

举个例子:

方法1:分别处理RGB通道

    原图:R、G、B三个矩阵

    对每个通道单独做处理:
    R' = 处理(R)
    G' = 处理(G)
    B' = 处理(B)

    合并:新图 = (R', G', B')

方法2:转换到HSI空间

    原图 RGB → 转换 → HSI

    只处理亮度I:
    I' = 处理(I)

    转换回 RGB:
    (H, S, I') → 转换 → 新的RGB

对比:
    方法        优点              缺点
    分别处理RGB  简单              可能改变颜色
    HSI空间处理  保持颜色不变      需要转换

边缘检测在彩色图像:
    方法1:对R、G、B分别检测,取平均
    方法2:转成灰度再检测
    方法3:在HSI空间只对I通道检测(推荐)

生活类比:

分别处理RGB像分别调整三个滑块,HSI处理像先提取亮度只调整亮度。HSI更符合直觉,不会改变颜色本身。

为什么这样设计:

有些操作(如去噪、增强)如果在RGB空间做,会改变三个通道的比例关系导致偏色。转到HSI空间只处理亮度I,就能在改善图像质量的同时保持原有色彩不变。

7彩色变换

彩色变换 $s_i = T_i(r_1, r_2, \ldots, r_n)$,$r_i$、$s_i$ 是输入/输出的彩色分量。所选彩色空间决定 $n$:RGB 时 $n=3$,CMYK 时 $n=4$。

补色

彩色环上与某色调直接相对的色调为补色。RGB 映射下:红↔青、黑↔白。作用:增强嵌在彩色图像暗区的细节(区域占优势时尤佳)。

色调与对比度变换

可使平淡图像变亮/变暗,或增强对比度(亮的更亮、暗的更暗)。

HSI 空间下的直方图均衡化

彩色图像直方图均衡只处理强度分量 $I$,保持 $H$、$S$ 不变。否则会改变彩色。注意:强度改变会影响图像彩色状态,常需适当调整饱和度。

⭐ 为何只均衡 $I$若对 $R$、$G$、$B$ 各自均衡,会破坏颜色平衡产生偏色。在 HSI 中仅均衡 $I$(亮度),色调 $H$、饱和度 $S$ 不变,能在提升对比度的同时保持色彩
💡 通俗理解:彩色变换 = 对三个通道分别处理

补色(负片)效果:

  • 原理:用255减去原来的值
  • R' = 255 - R,G' = 255 - G,B' = 255 - B
  • 效果:黑变白,红变青,绿变品红

色调分离(海报化):

  • 原理:减少颜色数量(比如从256级减到4级)
  • 效果:像海报画,色块分明

边缘检测在彩色图像:

  • 方法1:对每个通道分别检测,再合并
  • 方法2:转成灰度再检测
  • 方法3:在HSI空间只对I通道检测

8彩色图像平滑与锐化 ⭐

彩色平滑

令 S_xy 为以 (x,y) 为中心的邻域坐标集,RGB 平滑即对邻域内 R、G、B 三分量分别求平均

RGB 平滑 vs HSI 仅平滑 I

  • RGB 平滑:对三分量分别平均 —— 是不同彩色的平均;
  • HSI 仅平滑强度 I:只平均亮度,原彩色(H、S)保持不变。
  • 两者结果不同(存在差别图像):RGB 平均会混入邻域不同颜色,HSI 只平均亮度。

彩色锐化(拉普拉斯)

  • RGB 锐化:分别计算每一分量图像的拉普拉斯变换 —— 是不同彩色的锐化;
  • HSI 仅锐化 I:只对强度分量做拉普拉斯,H、S 不变。
RGB 平滑:分量分别平均 → 不同彩色被平均(颜色改变) HSI 平滑:仅平均 I H S Ī → H、S 不变,仅亮度平均(保色)
图3 · RGB 平滑(混合不同彩色)vs HSI 仅平滑强度 I(保持原色 H、S)
⭐ 核心结论(必考)RGB 处理对三个彩色分量操作,会改变颜色;HSI 仅处理强度分量 I原彩色(H、S)保持不变。这正是两者差别图像非零的原因。

重点例题

例题1:RGB → CMY 转换 某像素归一化 $RGB=(0.2, 0.6, 1.0)$,求 CMY。
解:$C=1-R=0.8$,$M=1-G=0.4$,$Y=1-B=0.0$ $\Rightarrow$ $CMY=$(0.8, 0.4, 0)(偏青色)。
例题2:RGB → HSI 概念题 某像素 $R=G=B$(灰色),求其饱和度 $S$ 和亮度 $I$。
解:$I=(R+G+B)/3=R$;$S=1-3 \cdot \min/(R+G+B)=1-3R/3R=$0。即无彩色(灰色)饱和度为 0,色调 $H$ 无定义。
例题3:24-bit RGB 颜色总数 每分量 8 bit,可表示多少种颜色?
解:$(2^8)^3 = 256^3 = $16,777,216 种(约 1670 万色)。
例题4:为什么彩色直方图均衡只在 HSI 的 I 分量做? 答:对 $R$、$G$、$B$ 分别均衡会改变三分量比例 → 偏色。在 HSI 中仅均衡亮度 $I$,色调 $H$ 与饱和度 $S$ 不变,可提升对比度同时保持原有色彩

🎯自测(点击展开)

人能辨别的颜色数与灰度数大致是多少?为什么研究彩色处理?
能辨别几千种颜色、只有几十种灰度,故颜色是更强的描绘子,便于区分与识别。
光的三原色和二次色分别是什么?
三原色 红、绿、蓝;二次色 黄=红+绿、青=绿+蓝、深红=红+蓝。
RGB → CMY 的转换公式?
C=1-R, M=1-G, Y=1-B(值归一化到 [0,1])。
HSI 三个分量各代表什么?最大优势是什么?
H 色调、S 饱和度、I 亮度;把亮度与色彩分离,避免光照干扰。
伪彩色处理的两种技术是什么?
强度分层;灰度级到彩色的变换(3 个独立变换送 RGB 通道)。
RGB 平滑与 HSI 仅平滑 I 的结果为什么不同?
RGB 平均的是不同彩色,HSI 只平均亮度、原彩色(H、S)不变。

📝强化题库

选择题点选即时判分;填空题输入后"检查"或"显示答案"。

已答 0/0答对 0正确率
已答 0/0答对 0