第九章彩色图像处理第九章彩色图像处理9.1色度学基础与颜色模型9.2颜色变换9.3平滑与锐化9.4MATLAB应用实例第九章彩色图像处理9.1色度学基础与颜色模型9.1.1色度学基础在计算机上显示一幅彩色图像时,每一个像素的颜色是通过三种基本颜色(即红、绿、蓝)合成的,即最常见的RGB颜色模型。要理解颜色模型,首先应了解人的视觉系统(visualsystem)。第九章彩色图像处理1.三色原理人的视觉系统中存在着杆状和锥状细胞两种感光细胞。杆状细胞为暗视器官,锥状细胞是明视器官(照度高时起作用),并能分辨颜色。锥状细胞将可见光谱分为红、绿、蓝三个波段。由于这个原因,这三种颜色被称为三基色,图2-7为锥状细胞的光谱敏感曲线。第九章彩色图像处理图2-7人类感光细胞的敏感曲线400020406080100波长/nm光吸收性%蓝绿红450500550600650700第九章彩色图像处理根据人的视觉特点,所有颜色都可看作是三基色R(红)、G(绿)和B(蓝)按照不同比例组合而成。波长分别为R:700nm,G:546.1nm,B:435.8nm。彩色图像的像素值可看作是光强和波长的函数f(x,y,λ),但在实际应用中,将其看作是普通二维图像,且每个像素有红、绿、蓝三个灰度值。第九章彩色图像处理2.颜色的三个属性颜色分两大类:非彩色和彩色。非彩色是指黑色、白色和介于这两者之间深浅不同的灰色。彩色是指除了非彩色以外的各种颜色。颜色有三个基本属性,分别是色调、饱和度和亮度。基于这三个基本属性,提出了一种重要的颜色模型--HSI(Hue、Saturation、Intensity)模型。第九章彩色图像处理9.1.2颜色模型为了定量描述和使用颜色,提出了各种颜色模型。面向硬件设备的最常用彩色模型是RGB模型。面向彩色处理的最常用模型是HSI模型。面向印刷工业最常用模型是CMYK模型。面向电视信号传输最常用模型是YUV模型。第九章彩色图像处理1.RGB模型RGB模型用三维空间中的一个点来表示一种颜色,如图2-8所示。每个点有三个分量,分别代表红、绿、蓝亮度值,亮度值限定在[0,1]。RGB模型中,原点的颜色为黑色,其分量值都为0。离原点最远的顶点的颜色为白色,其分量值都为1。从黑到白的灰度值分布在这两个点的连线上(灰色线)。立方体内其余各点对应不同的颜色。第九章彩色图像处理图2-8RGB模型的单位立方体z蓝(Blue)品红(Magenta)红(Red)绿(Green)黄(Yellow)青(Cyan)xyO第九章彩色图像处理2.HSI模型HSI模型比较符合人的视觉系统感受彩色的方式。H表示色调(Hue),S表示饱和度(Saturation),I表示亮度(Intensity)。该模型的建立基于两个重要的事实:①I分量与图像的彩色信息无关;②H和S分量与人感受颜色的方式是紧密相联的。第九章彩色图像处理图2-9中的色相环描述了色调和饱和度两个参数。色调由角度表示,反映了该彩色最接近什么样的光谱波长。饱和度(色环原点到彩色点的半径)是指一个颜色的鲜明程度,饱和度越高,颜色越深。HSI模型的三个属性定义了一个三维柱形空间,如图2-10所示。亮度轴线从底部的黑变到顶部的白。最大饱和度的颜色位于圆柱的外表面上。第九章彩色图像处理图2-9色相环120°绿240°蓝0°红HSI红绿蓝120°0°240°图2-10柱形彩色空间第九章彩色图像处理3.CMYK模型不同于RGB表色系统通过三基色相加来产生其他颜色(通常称为加色合成法)。在印刷工业上则通常用CMYK表色系统,它是通过颜色相减来产生其他颜色(减色合成法)。CMYK模型的基色为青色(Cyan)、品红色(Magenta)、黄色(Yellow)和黑色(Black)。这种模型的图像文件大,一般只在印刷时使用。第九章彩色图像处理4.YUV模型YUV表色系统专用于彩色电视信号传输。它是将R、G、B三色信号改组成亮度信号和色差信号。其中Y是亮度信号,U、V是色差信号。RGB模型与YUV模型之间的换算如下:BGRVUY100.0515.0615.0437.0289.0148.0114.0587.0299.0第九章彩色图像处理9.2颜色变换颜色变换是对图像中的某些颜色分量进行运算,实现图像增强、改善质量或者一些预处理。9.2.1基本变换颜色变换模型为g(x,y)=T[f(x,y)]式中f(x,y)为输入图像,g(x,y)是处理后的图像。颜色变换关系可表示为:si=Ti[r1,r2,…,rn],i=1,2,…,nri,si分为f(x,y)和g(x,y)中任一点的彩色分量值。第九章彩色图像处理理论上,以上公式适用于任何一种颜色模型,然而,某一特定变换只会对特定的颜色模型比较适用。例如,若采用直方图均衡化来处理的话,对HSI模型中的I分量进行处理,其结果正常;但若是对RGB模型中的三个分量通道(R、G、B)分别进行处理,则会发生颜色畸变(偏色)。第九章彩色图像处理9.2.2彩色切片彩色切片是指通过识别图像中感兴趣的颜色,然后将其作为一个整体从图像中分离出来。假如原始图像中包含了不同颜色的区域,可以利用彩色切片技术将某种颜色的区域单独分离出来,而其余则被设置成背景色。简言之,彩色切片是把感兴趣颜色区域之外的所有区域变为不突出的背景色。第九章彩色图像处理9.2.3直方图处理灰度图像的处理中,直方图是简单有效的工具,可以通过均衡化等方法,对图像质量进行调整。同样地,对彩色图像而言,直方图仍不失为一种有效的工具。彩色直方图可定义为图像中某一颜色值出现的次数。问题在于直接统计彩色图像的直方图往往不可行,实际中采用简化的方法。例如,首先将彩色分量通道分离,然后对每个分量通道单独进行直方图处理。第九章彩色图像处理9.3平滑与锐化灰度图像处理的空间域滤波方法可以直接推广到彩色图像。但为保证处理后不发生颜色畸变,各颜色通道上的处理必须相同。9.3.1彩色图像平滑模板平滑可以推广到彩色图像平滑中。只不过平滑要同时在每个独立的彩色分量上进行。9.3.2彩色图像锐化锐化与平滑的操作步骤相同,只不过要使用的是锐化模板(如Laplacian算子)。第九章彩色图像处理9.4MATLAB应用实例9.4.1彩色切片:将向日葵叶片从图像中分离出来.A=imread('d:\testpictures\sunflowers.jpg');subplot(1,2,1);imshow(A);T=A;fori=1:652forj=1:901ifA(i,j,1)150&A(i,j,2)0&A(i,j,3)200T(i,j,1)=0;T(i,j,2)=0;T(i,j,3)=0;endendendsubplot(1,2,2);imshow(T);第九章彩色图像处理第九章彩色图像处理另一个例子:将红色目标从图像中分离出来。A=imread('d:\testpictures\mixedcolor.bmp');subplot(1,2,1);imshow(A);T=A;fori=1:384forj=1:512ifA(i,j,1)150&A(i,j,2)50&A(i,j,3)50T(i,j,1)=A(i,j,1);T(i,j,2)=0;T(i,j,3)=0;elseT(i,j,1)=0;T(i,j,2)=0;T(i,j,3)=0;endendendsubplot(1,2,2);imshow(T);第九章彩色图像处理第九章彩色图像处理9.4.2彩色图像的直方图处理:对彩色图像分通道进行直方图均衡化处理.A=imread('d:\testpictures\sunflower.jpg');subplot(2,2,1);imshow(A),title('原图像');R=A(:,:,1);G=A(:,:,2);B=A(:,:,3);subplot(2,2,2);imshow(R),title('红色通道图像');R1=histeq(R);G1=histeq(G);B1=histeq(B);subplot(2,2,3);imshow(R1),title('红色通道均衡后');A(:,:,1)=R1;A(:,:,2)=G1;A(:,:,3)=B1;subplot(2,2,4);imshow(A),title('各通道均衡后合成');第九章彩色图像处理第九章彩色图像处理第九章彩色图像处理9.4.3彩色图像平滑:对彩色图像分通道中值滤波.A=imread('d:\testpictures\children.jpg');subplot(2,2,1);imshow(A),title('原图像');R=A(:,:,1);G=A(:,:,2);B=A(:,:,3);subplot(2,2,2);imshow(R),title('红色通道图像');R1=medfilt2(R);G1=medfilt2(G);B1=medfilt2(B);subplot(2,2,3);imshow(R1),title('红色通道中值滤波后图像');A(:,:,1)=R1;A(:,:,2)=G1;A(:,:,3)=B1;subplot(2,2,4);imshow(A),title('各通道中值滤波后合成图像');第九章彩色图像处理第九章彩色图像处理第九章彩色图像处理