图像处理-Ch6-彩色图像处理

Ch6 彩色图像处理

无广告更易阅读,个人博客点此进入<--

文章目录

  • [Ch6 彩色图像处理](#Ch6 彩色图像处理)
    • 彩色基础
    • [彩色模型(Color models)](#彩色模型(Color models))
      • [RGB(red, green, blue)](#RGB(red, green, blue))
      • [CMY & CMYK(cyan, magenta, yellow/and black)](#CMY & CMYK(cyan, magenta, yellow/and black))
      • [HSI(hue, saturation, intensity)](#HSI(hue, saturation, intensity))
      • [HSV(hue, saturation, value)](#HSV(hue, saturation, value))
    • [颜色空间及其转换(Converting to Other Color Spaces)](#颜色空间及其转换(Converting to Other Color Spaces))
    • [The Basics of Color Image Processing](#The Basics of Color Image Processing)
    • [Working Directly in RGB Vector Space](#Working Directly in RGB Vector Space)

Q: 颜色(Color)是什么?

A: 人眼能够感知的部分电磁波信号。

本章需要了解:了解所有颜色空间、字母代表意思、均匀性颜色空间(L, V, B型)

彩色基础

区分不同颜色的特性通常是亮度、色调、饱和度。

  • 亮度:发光强度的消色概念。
  • 色调:混合光波中与主波长相关的属性、表示被观察者感知的主导色。(红色、橙色、黄色
  • 饱和度:相对的纯度,or 与一种色调混合的白光量。饱和度与所加的白光量成反比。
  • 色度:色调+饱和度。

三色值: X , Y , Z X,Y,Z X,Y,Z

CIE色度图: x , y , z = 1 − ( x + y ) x,y,z=1-(x+y) x,y,z=1−(x+y), x(红)、y(绿)、z(蓝)

CIELAB(CIE L*a*b*模型):保持色彩一致、独立于设备的色彩模型。

  • CIE L*a*b*色彩空间是一种与设备无关的色彩空间,能够准确地描述人眼可见的所有颜色。
  • 它在色彩匹配、色彩差异评估以及色彩管理系统中非常有用。
  • 它能够在不同的设备(如监视器、打印机等)之间保持一致的色彩表现。

L ∗ = 116 ⋅ ( Y Y n ) 1 3 − 16 a ∗ = 500 ⋅ ( ( X X n ) 1 3 − ( Y Y n ) 1 3 ) b ∗ = 200 ⋅ ( ( Y Y n ) 1 3 − ( Z Z n ) 1 3 ) L^\ast = 116 \cdot \left( \frac{Y}{Y_n} \right)^\frac{1}{3} - 16\\ a^\ast = 500 \cdot \left( \left( \frac{X}{X_n} \right)^\frac{1}{3} - \left( \frac{Y}{Y_n} \right)^\frac{1}{3} \right)\\ b^\ast = 200 \cdot \left( \left( \frac{Y}{Y_n} \right)^\frac{1}{3} - \left( \frac{Z}{Z_n} \right)^\frac{1}{3} \right) L∗=116⋅(YnY)31−16a∗=500⋅((XnX)31−(YnY)31)b∗=200⋅((YnY)31−(ZnZ)31)

彩色模型(Color models)

  • 面向硬件:RGB(red, green, blue)
  • 面向彩色打印开发:CMY,CMYK(cyan, magenta, yellow, black)
  • 面向人类描述和解释颜色的方式:HSI(hue, saturation, intensity)

RGB(red, green, blue)

在RGB颜色空间中,表示每个pixel所用的bit数称为像素深度。

CMY & CMYK(cyan, magenta, yellow/and black)

颜料的原色:青色、深红色、黄色(用于彩色打印机),有时多加黑色。

  • 白光照射涂有青色颜料的表面时,表面不会反射红光。
  • 青色从反射的白光中减去红光、白光又等量的红绿蓝光组成。

HSI(hue, saturation, intensity)

观察彩色物体时,我们会用色调(hue)、饱和度(saturation)、亮度(intensity)来描述物体。

HSV(hue, saturation, value)

HSV代表色调(Hue)、饱和度(Saturation)和明度(Value)。

  1. 色调(H):它是色彩的基本属性,用于区分不同的颜色种类,用角度来度量,取值范围通常是0° - 360°。例如,0°或360°代表红色,120°代表绿色,240°代表蓝色。
  2. 饱和度(S):表示颜色的纯度,取值范围是0 - 1。饱和度越高,颜色越鲜艳纯粹;饱和度为0时,颜色变为灰色(只有明度信息)。
  3. 明度(V):也称为亮度,代表颜色的明亮程度,取值范围是0 - 1。

颜色空间及其转换(Converting to Other Color Spaces)

自然界中存在一些颜色,无法使用RGB颜色空间定义。

XYZ颜色空间可以定义世界上一切颜色。

RGB → NTSC(YIQ):

NTSC(National Television Standards Committee,美国国家电视标准委员会)颜色空间是一种用于模拟电视广播的颜色编码系统。它将颜色信息分解为亮度(Y)和两个色度分量(I 和 Q)

与YUV空间相似:YUV 是一种颜色编码方法,主要用于视频系统。其中 "Y" 表示亮度(Luminance 或 Luma),也就是灰度值;而 "U" 和 "V" 表示色度(Chrominance 或 Chroma),用于描述颜色信息。

Y I Q \] = \[ 0.299 0.587 0.114 0.596 − 0.274 − 0.322 0.211 − 0.523 0.312 \] \[ R G B \] \\begin{bmatrix} Y \\\\ I \\\\ Q \\end{bmatrix} = \\begin{bmatrix} 0.299 \& 0.587 \& 0.114 \\\\ 0.596 \& -0.274 \& -0.322 \\\\ 0.211 \& -0.523 \& 0.312 \\end{bmatrix} \\begin{bmatrix} R \\\\ G \\\\ B \\end{bmatrix} YIQ = 0.2990.5960.2110.587−0.274−0.5230.114−0.3220.312 RGB **NTSC → RGB** : \[ R G B \] = \[ 1.000 0.956 0.621 1.000 − 0.272 − 0.647 1.000 − 1.106 1.703 \] \[ Y I Q \] \\begin{bmatrix} R \\\\ G \\\\ B \\end{bmatrix} = \\begin{bmatrix} 1.000 \& 0.956 \& 0.621 \\\\ 1.000 \& -0.272 \& -0.647 \\\\ 1.000 \& -1.106 \& 1.703 \\end{bmatrix} \\begin{bmatrix} Y \\\\ I \\\\ Q \\end{bmatrix} RGB = 1.0001.0001.0000.956−0.272−1.1060.621−0.6471.703 YIQ **RGB → YCbCr**(用于编码数字图像): YCbCr 是一种颜色空间,其中 "Y" 代表亮度(Luminance),"Cb" 和 "Cr" 分别代表蓝色色度(Chrominance of Blue)和红色色度(Chrominance of Red)。 \[ Y C b C r \] = \[ 16 128 128 \] + \[ 65.481 128.553 24.966 − 37.797 − 74.203 112.000 112.000 − 93.786 − 18.214 \] \[ R G B \] / 256 \\begin{bmatrix} Y \\\\ Cb \\\\ Cr \\end{bmatrix} = \\begin{bmatrix} 16 \\\\ 128 \\\\ 128 \\end{bmatrix} + \\begin{bmatrix} 65.481 \& 128.553 \& 24.966 \\\\ -37.797 \& -74.203 \& 112.000 \\\\ 112.000 \& -93.786 \& -18.214 \\end{bmatrix} \\begin{bmatrix} R \\\\ G \\\\ B \\end{bmatrix} /256 YCbCr = 16128128 + 65.481−37.797112.000128.553−74.203−93.78624.966112.000−18.214 RGB /256 **CMY \& CMYK**: \[ C M Y \] = \[ 1 1 1 \] − \[ R G B \] , \[ R G B \] = \[ 1 1 1 \] − \[ C M Y \] \\ \\begin{bmatrix} C \\\\ M \\\\ Y \\end{bmatrix} = \\begin{bmatrix} 1 \\\\ 1 \\\\ 1 \\end{bmatrix} - \\begin{bmatrix} R \\\\ G \\\\ B \\end{bmatrix} ,\\quad \\begin{bmatrix} R \\\\ G \\\\ B \\end{bmatrix} = \\begin{bmatrix} 1 \\\\ 1 \\\\ 1 \\end{bmatrix} - \\begin{bmatrix} C \\\\ M \\\\ Y \\end{bmatrix} CMY = 111 − RGB , RGB = 111 − CMY **RGB → HSI** : H = { θ if B ≤ G 360 − θ if B \> G θ = cos ⁡ − 1 { 1 2 \[ ( R − G ) + ( R − B ) \] \[ ( R − G ) 2 + ( R − B ) ( G − B ) \] 1 2 } S = 1 − 3 R + G + B \[ min ⁡ ( R , G , B ) \] I = 1 3 ( R + G + B ) \\begin{align}H \&= \\begin{cases} \\theta \& \\text{if } B \\leq G \\\\ 360 - \\theta \& \\text{if } B \> G \\end{cases}\\\\ \\theta \&= \\cos\^{-1}\\left\\{\\frac{\\frac{1}{2}\[(R - G)+(R - B)\]}{\\left\[(R - G)\^2+(R - B)(G - B)\\right\]\^{\\frac{1}{2}}}\\right\\}\\\\ S \&= 1 - \\frac{3}{R + G + B}\[\\min(R, G, B)\]\\\\ I \&= \\frac{1}{3}(R + G + B) \\end{align} HθSI={θ360−θif B≤Gif B\>G=cos−1{\[(R−G)2+(R−B)(G−B)\]2121\[(R−G)+(R−B)\]}=1−R+G+B3\[min(R,G,B)\]=31(R+G+B) **HSI → RGB** **RG sector(0° ≤ H \< 120°)** : B = I ( 1 − S ) R = I \[ 1 + S cos ⁡ H cos ⁡ ( 60 ° − H ) \] G = 3 I − ( R + B ) \\begin{align} B \&= I(1 - S)\\\\ R \&= I\\left\[1+\\frac{S\\cos H}{\\cos(60° - H)}\\right\]\\\\ G \&= 3I-(R + B) \\end{align} BRG=I(1−S)=I\[1+cos(60°−H)ScosH\]=3I−(R+B) **HSI → RGB** **GB sector(120° ≤ H \< 240°)** : H = H − 120 ° R = I ( 1 − S ) G = I \[ 1 + S cos ⁡ H cos ⁡ ( 60 ° − H ) \] B = 3 I − ( R + G ) \\begin{align} H\&= H - 120°\\\\ R \&= I(1 - S)\\\\ G \&= I\\left\[1+\\frac{S\\cos H}{\\cos(60° - H)}\\right\]\\\\ B \&= 3I-(R + G) \\end{align} HRGB=H−120°=I(1−S)=I\[1+cos(60°−H)ScosH\]=3I−(R+G) **BR sector(240° ≤ H ≤ 360°)** : H = H − 240 ° G = I ( 1 − S ) B = I \[ 1 + S cos ⁡ H cos ⁡ ( 60 ° − H ) \] R = 3 I − ( G + B ) \\begin{align} H \&= H - 240°\\\\ G \&= I(1 - S)\\\\ B \&= I\\left\[1+\\frac{S\\cos H}{\\cos(60° - H)}\\right\]\\\\ R \&= 3I-(G + B) \\end{align} HGBR=H−240°=I(1−S)=I\[1+cos(60°−H)ScosH\]=3I−(G+B) ### The Basics of Color Image Processing **Q: 如何度量两个颜色之间的相似性**? RBG值是向量。 ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png) 插值映射函数: ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png) ### Working Directly in RGB Vector Space **使用梯度的颜色边缘检测** 梯度(gradient): ∇ f = \[ G x G y \] = \[ ∂ f ∂ x ∂ f ∂ y \] \\nabla f=\\left\[\\begin{array}{l} G_{x} \\\\ G_{y} \\end{array}\\right\]=\\left\[\\begin{array}{l} \\frac{\\partial f}{\\partial x} \\\\ \\frac{\\partial f}{\\partial y} \\end{array}\\right\] ∇f=\[GxGy\]=\[∂x∂f∂y∂f

幅度(magnitude):
∣ ∇ f ∣ = mag ⁡ ( ∇ f ) = [ G x 2 + G y 2 ] 1 / 2 = [ ( ∂ f ∂ x ) 2 + ( ∂ f ∂ y ) 2 ] 1 / 2 |\nabla f|=\operatorname{mag}(\nabla f)=\left[G_{x}^{2}+G_{y}^{2}\right]^{1 / 2}=\left[\left(\frac{\partial f}{\partial x}\right)^{2}+\left(\frac{\partial f}{\partial y}\right)^{2}\right]^{1 / 2} ∣∇f∣=mag(∇f)=[Gx2+Gy2]1/2=[(∂x∂f)2+(∂y∂f)2]1/2

角度(angle):
α ( x , y ) = tan ⁡ − 1 ( G y G x ) \alpha(x, y)=\tan ^{-1}\left(\frac{G_{y}}{G_{x}}\right) α(x,y)=tan−1(GxGy)

r、g和b是沿R、G和B轴的单位向量 :
u = ∂ R ∂ x r + ∂ G ∂ x g + ∂ B ∂ x b , v = ∂ R ∂ y r + ∂ G ∂ y g + ∂ B ∂ y b u=\frac{\partial R}{\partial x} r+\frac{\partial G}{\partial x} g+\frac{\partial B}{\partial x} b,\quad v=\frac{\partial R}{\partial y} r+\frac{\partial G}{\partial y} g+\frac{\partial B}{\partial y} b u=∂x∂Rr+∂x∂Gg+∂x∂Bb,v=∂y∂Rr+∂y∂Gg+∂y∂Bb

定义数量(Quantities):
g x x = u ⋅ u = u T u = ∣ ∂ R ∂ x ∣ 2 + ∣ ∂ G ∂ x ∣ 2 + ∣ ∂ B ∂ x ∣ 2 g y y = v ⋅ v = v T v = ∣ ∂ R ∂ y ∣ 2 + ∣ ∂ G ∂ y ∣ 2 + ∣ ∂ B ∂ y ∣ 2 g x y = u ⋅ v = u T v = ∂ R ∂ x ∂ R ∂ y + ∂ G ∂ x ∂ G ∂ y + ∂ B ∂ x ∂ B ∂ y g_{x x}=u \cdot u=u^{T} u=\left|\frac{\partial R}{\partial x}\right|^{2}+\left|\frac{\partial G}{\partial x}\right|^{2}+\left|\frac{\partial B}{\partial x}\right|^{2}\\ g_{y y}=v \cdot v=v^{T} v=\left|\frac{\partial R}{\partial y}\right|^{2}+\left|\frac{\partial G}{\partial y}\right|^{2}+\left|\frac{\partial B}{\partial y}\right|^{2}\\ g_{x y}=u \cdot v=u^{T} v=\frac{\partial R}{\partial x} \frac{\partial R}{\partial y}+\frac{\partial G}{\partial x} \frac{\partial G}{\partial y}+\frac{\partial B}{\partial x} \frac{\partial B}{\partial y} gxx=u⋅u=uTu= ∂x∂R 2+ ∂x∂G 2+ ∂x∂B 2gyy=v⋅v=vTv= ∂y∂R 2+ ∂y∂G 2+ ∂y∂B 2gxy=u⋅v=uTv=∂x∂R∂y∂R+∂x∂G∂y∂G+∂x∂B∂y∂B

角度是c(x,y)最大变化率的方向为 θ ( x , y ) \theta(x,y) θ(x,y), 对应变化率的值为 F θ ( x , y ) F_{\theta}(x,y) Fθ(x,y):
θ ( x , y ) = 1 2 tan ⁡ − 1 ( 2 g x y g x x − g y y ) F θ ( x , y ) = 1 2 { [ g x x + g y y + ( g x x − g y y ) cos ⁡ 2 θ + 2 g x y sin ⁡ 2 θ ] 1 / 2 } \theta(x, y)=\frac{1}{2} \tan ^{-1}\left(\frac{2 g_{x y}}{g_{x x}-g_{y y}}\right)\\ F_{\theta}(x, y)=\frac{1}{2}\left\{\left[g_{x x}+g_{y y}+\left(g_{x x}-g_{y y}\right) \cos 2 \theta+2 g_{x y} \sin 2 \theta\right]^{1 / 2}\right\} θ(x,y)=21tan−1(gxx−gyy2gxy)Fθ(x,y)=21{[gxx+gyy+(gxx−gyy)cos2θ+2gxysin2θ]1/2}

RGB向量空间中的图像分割

如何获得一个感兴趣的模型?

距离度量(欧式距离):
D ( z , m ) = ∥ z − m ∥ = [ ( z − m ) T ( z − m ) ] 1 / 2 = [ ( z R − m R ) 2 + ( z G − m G ) 2 + ( z B − m B ) 2 ] 1 / 2 \begin{align} D(z, m)&=\|z - m\|\\ &=\left[(z - m)^{T}(z - m)\right]^{1 / 2}\\ &=\left[\left(z_{R}-m_{R}\right)^{2}+\left(z_{G}-m_{G}\right)^{2}+\left(z_{B}-m_{B}\right)^{2}\right]^{1 / 2} \end{align} D(z,m)=∥z−m∥=[(z−m)T(z−m)]1/2=[(zR−mR)2+(zG−mG)2+(zB−mB)2]1/2

上式使用欧氏距离。前提是量纲最好一致。

如果不一致,那么看下面的形式,类似于马氏距离。

一种有用的推广是如下形式的距离度量:
D ( z , m ) = [ ( z − m ) T C − 1 ( z − m ) ] 1 / 2 D(z, m)=\left[(z - m)^{T} C^{-1}(z - m)\right]^{1 / 2} D(z,m)=[(z−m)TC−1(z−m)]1/2
C ≥ 0 , ∣ C ∣ ≠ 0 C\ge 0,|C|\neq0 C≥0,∣C∣=0, 可以被定义为任意形式。

B}\right){2}\right]{1 / 2}

\end{align}

> 上式使用欧氏距离。前提是量纲最好一致。 > > 如果不一致,那么看下面的形式,类似于马氏距离。 一种有用的推广是如下形式的距离度量: D ( z , m ) = \[ ( z − m ) T C − 1 ( z − m ) \] 1 / 2 D(z, m)=\\left\[(z - m)\^{T} C\^{-1}(z - m)\\right\]\^{1 / 2} D(z,m)=\[(z−m)TC−1(z−m)\]1/2 C ≥ 0 , ∣ C ∣ ≠ 0 C\\ge 0,\|C\|\\neq0 C≥0,∣C∣=0, 可以被定义为任意形式。

相关推荐
程序员徐师兄9 小时前
Windows JDK11 下载安装教程,适合新手
java·windows·jdk11 下载安装·jdk11 下载教程
编码者卢布12 小时前
【App Service】Java应用上传文件功能部署在App Service Windows上报错 413 Payload Too Large
java·开发语言·windows
多来哈米14 小时前
openclaw在Windows部署
windows·openclaw
视觉AI14 小时前
【踩坑实录】Windows ICS 共享网络下,国产化盒子 SSH 连接异常的完整分析
网络·windows·ssh
qq_2466461918 小时前
openclaw快速安装-windows版
windows·stm32·单片机
sonrisa_18 小时前
Python同一类不同方法中变量值的传递
开发语言·windows·python
玖釉-19 小时前
探索连续细节层次(Continuous LOD):深入解析 NVIDIA 的 nv_cluster_lod_builder
c++·windows·图形渲染
MyY_DO19 小时前
第九课ida与花指令
windows·od
多多*20 小时前
Mysql数据库相关 事务 MVCC与锁的爱恨情仇 锁的层次架构 InnoDB锁分析
java·数据库·windows·sql·oracle·面试·哈希算法
LateFrames20 小时前
“蚯蚓涌动” 的屏保: DirectX 12 + ComputeSharp + Win32
windows·ui·gpu算力