1彩色模型
本质上,彩色模型是坐标系统和子空间的说明。
- RGB彩色模型
该模型中,每种颜色出现在红,率,蓝的原色光谱分量中。RGB彩色模型中表示的图像由三个分量图像组成,每种原色一幅分量图像。送入RGB监视器时,这三幅图像在屏幕上混合生成一幅合成彩色图像。 - CMY和CMYK彩色模型
CMY中使用青色,深红色和黄色。
CMYK在CMY的基础上加了黑色。
RGB到CMY的转换是用下列式子进行:
[ C M Y ] = [ 1 1 1 ] − [ R G B ] \begin{bmatrix}C\\M\\Y\end{bmatrix}=\begin{bmatrix}1\\1\\1\end{bmatrix}-\begin{bmatrix}R\\G\\B\end{bmatrix} CMY = 111 − RGB
首先将所有彩色值归一化到范围 [ 0 , 1 ] [0,1] [0,1]内。
代码如下
`
import cv2 as cv
import matplotlib.pyplot as plt
img=cv.imread(“c:\jimei.jpg”)
R,G,B=cv.split(img)
R=R/255.0
G=G/255.0
B=B/255.0
C=1-R
M=1-G
Y=1-B
img001=cv.merge((C,M,Y))
plt.imshow(img001)
plt.show()
- HSI彩色模型
该(色调,饱和度,强度)彩色模型描述对人来说是自然且直观的。是开发基于彩色描述的图像处理算法的理想工具。
RGB到HSI的彩色转换
给定一幅RGB彩色格式的图像,每个RGB像素的H分量可通过公式得到:
H = { θ , B ≤ G 360 − θ , B > G H=\begin{cases}\theta ,B\le G\\360-\theta ,B>G\end{cases} H={θ,B≤G360−θ,B>G
其中, θ = a r c c o s [ 1 2 ( R − G ) + ( R − B ) [ ( R − G ) 2 + ( R − B ) ( G − B ) ] 1 / 2 ] \theta=arccos[\frac{\frac{1}{2}(R-G)+(R-B)}{[(R-G)^2+(R-B)(G-B)]^{1/2}}] θ=arccos[[(R−G)2+(R−B)(G−B)]1/221(R−G)+(R−B)]
饱和度分量由式子给出:
S = 1 − 3 ( R + G + B ) [ m i n ( R , G , B ) ] S=1-\frac{3}{(R+G+B)}[min(R,G,B)] S=1−(R+G+B)3[min(R,G,B)]
强度分量由式子给出:
I = 1 3 ( R + B + G ) I=\frac{1}{3}(R+B+G) I=31(R+B+G)
HSI到RGB的彩色转换
2伪彩色图像处理
伪彩色(也称为假彩色)图像处理是指基于一种指定的规则对灰度值赋以颜色的处理。伪彩色的主要应用是人目视观察和解释单幅图像或序列图像中的灰度级事件。
- 灰度分层
将一幅图像描述为三维函数,则分层方法可以看作是放置一些平行于该图像的坐标平面的平面,然后,每个平面在相交的区域中切割图像函数。
灰度级分层可以突出图像中特定的灰度级区间,可以对灰度级进行分层处理。
灰度级分层有两种常用方案:一种方案是二值处理,将感兴趣的灰度级区间设为较大的灰度值,其它区间设为较小的灰度值;另一种方案是窗口处理,将感兴趣的灰度级区间设为较大的灰度值,其它区间不变。 - 灰度到彩色的变换
这一方法的基本概念是对任何输人像素的灰度执行3个独立的变换。然后,将3个变换结果分别送人彩色电视监视器的红、绿、蓝通道。这种方法产生一幅合成图像,该合成图像的彩色内容由变换函数的特性调制。
3全彩色图像处理
全彩色图像处理方法分为两大类:
第一类是分别处理每一幅分量图像,然后由分别处理过的分量图像来形成一幅处理过的合成彩色图像。
第二类是直接处理彩色像素。因为全彩色图像至少有3个分量,所以彩色像素实际上是向量。
- 彩色变换
主要涉及在单一彩色模型内处理彩色图像的分量,而不是这些分量在不同模型见的转换。
彩色变换公式: g ( x , y ) = T [ f ( x , y ) ] g(x,y)=T[f(x,y)] g(x,y)=T[f(x,y)],
其中 f ( x , y ) f(x,y) f(x,y)是彩色输入图像,
g ( x , y ) g(x,y) g(x,y)是变换后或处理过的彩色输出图像,
T是在 ( x , y ) (x,y) (x,y)的空间领域上对f的一个算子。 - 补色
彩色环中,与色调直接相对的另一端被称为补色。
补色对于增强嵌在彩色图像暗区的细节很有用。 - 彩色图像平滑
也称 模糊处理” ,使用频率很高的图像处理方法。平滑处理的用途有很多,最常见的是用来减少图像上的噪点或者失真。在涉及到降低图像分辨率时,平滑处理是非常好用的方法。 - 彩色图像锐化
图像锐化是和平滑相反的操作,目的是为了使模糊的图像变得清晰。
import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
kernel_sharpen_2 = np.array([
[1, 1, 1],
[1, -7, 1],
[1, 1, 1]])
image=cv.imread(“c:\jimei.jpg”)
output_1 = cv.filter2D(image, -1, kernel_sharpen_2)
cv.namedWindow(‘sharpen_1’, cv.WINDOW_NORMAL)
cv.imshow(‘Original Image’, image)
cv.imshow(‘sharpen_1’, output_1)
cv.waitKey(0)
- 基于彩色的图像分割
在一幅RGB图像中分割某个指定的颜色区域(bbox)的物体。给定一个感兴趣的有代表性色彩的彩色样点集,可得到我们希望分割的颜色的“平均”估计。平均彩色用RGB向量α \alphaα表示,分割的目的是将图像中每个RGB像素分类,即在指定的区域内是否有一种颜色