RGB与YUV、YIQ、YCbCr、HSI、CMY的模型互化(基于matlab)

合集下载

RGB图和HSI图转换

RGB图和HSI图转换

摘要所谓彩色模型就是指摸个三维颜色空间中的一个可见光子集。

它包含某个颜色域的所有颜色。

例如,RGB颜色模型就是三维直角坐标颜色系统的一个单位正方体。

颜色模型的用途是在某个颜色域内方便的制定颜色,由于每一个颜色域都是可见光的子集,所以任何一个颜色模型都无法包含所有得可见光。

在大多数的颜色图形显示设备一般都是使用红、绿、蓝三原色,我们的真实感图形学中的主要的颜色模型也是RGB模型,但是红、绿、蓝颜色模型用起来不太方便,它与直观的颜色概念如色调、饱和度和亮度等没有直接的联系。

计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R、G、B 相加混色的原理。

通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光尔产生色彩的。

这种色彩的表示方法称为RGB色彩空间表示。

HSV颜色模型中颜色的参数分别是:色彩,纯度,明度。

HSV模型的三维表示是一种比拟直观的颜色模型,在许多图形编辑工具中应用比拟广泛。

如Photoshop 等等。

但这也决定了他不适合使用在光照模型中。

YCbCr是DVD、摄像机、数字电视等消费类视频产品中,常用的色彩编码方案。

YCbCr有时也会称为YCC。

YCbCr在模拟分量视频中也常被称为YPbpr。

关键词:颜色模型;RGB;HSV;YCbCr目录1 课程设计目的....................................................................................... 错误!未定义书签。

2 课程设计要求 (1)3 MATLAB简介 (2)MATLAB主要功能 (2)3.2 MATLAB优势 (2)3.2.1 工作平台和编程环境 (2)程序语言 (3)3.2.3 科学计算机数据处理能力 (3)3.2.4图形处理功能 (3)3.2.5模块集合工具箱 (4)3.3 MATLAB函数与数据类型 (4)4 设计方案 (4)5 程序编码 (5)5.1 将RGB图像与HSI图像互相转换 (5)将RGB图像转换到NTSC图像 (8)6 仿真结果 (9)7 结论 (11)8 参考文献 (12)1 课程设计目的彩色模型也称为彩色空间或彩色系统,是描述色彩的一种方法。

关于YUV和RGB之间的转换公式

关于YUV和RGB之间的转换公式

关于YUV和RGB之间的转换公式总结了一下网上关于YUV的一些东西先区分一下YUV和YCbCrYUV色彩模型来源于RGB模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。

应用:模拟领域Y'= 0.299*R' + 0.587*G' + 0.114*B'U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y')V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y')R' = Y' + 1.140*V'G' = Y' - 0.394*U' - 0.581*V'B' = Y' + 2.032*U'YCbCr模型来源于YUV模型。

YCbCr是YUV 颜色空间的偏移版本.应用:数字视频,ITU-R BT.601建议Y’ = 0.257*R' + 0.504*G' + 0.098*B' + 16Cb' = -0.148*R' - 0.291*G' + 0.439*B' + 128Cr' = 0.439*R' - 0.368*G' - 0.071*B' + 128R' = 1.164*(Y’-16) + 1.596*(Cr'-128)G' = 1.164*(Y’-16) - 0.813*(Cr'-128) - 0.392*(Cb'-128)B' = 1.164*(Y’-16) + 2.017*(Cb'-128)PS: 上面各个符号都带了一撇,表示该符号在原值基础上进行了伽马校正,伽马校正有助于弥补在抗锯齿的过程中,线性分配伽马值所带来的细节损失,使图像细节更加丰富。

RGB彩色空间的不同转换公式

RGB彩色空间的不同转换公式

RGB彩色空间的不同转换公式RGB(红绿蓝)彩色空间是一种用于显示和处理彩色图像的一种方式,广泛应用于计算机图形学、数字图像处理、电视和摄影等领域。

RGB彩色空间的转换公式可以通过线性和非线性的方式来实现。

下面将介绍RGB彩色空间的不同转换公式。

1.RGB到CMYCMY(青色、品红、黄色)彩色空间是RGB的补色空间,用于打印和印刷等领域。

转换公式:C=1-RM=1-GY=1-B2.RGB到HSVHSV(色调、饱和度、明度)彩色空间是一种圆柱体坐标系统,用于人眼感知颜色。

转换公式:V = max(R, G, B)S = (V - min(R, G, B)) / VH = 0, if V = 060 * (G - B) / (V - min(R, G, B)), if V = R60 * (2 + (B - R) / (V - min(R, G, B))), if V = G60 * (4 + (R - G) / (V - min(R, G, B))), if V = B3.RGB到YUVYUV(亮度、色度U、色度V)彩色空间是一种用于视频和图像压缩的颜色表示方式。

转换公式:Y=0.299*R+0.587*G+0.114*BU=-0.169*R-0.332*G+0.500*B+128V=0.500*R-0.419*G-0.081*B+1284.RGB到YCbCrYCbCr(亮度、蓝彩色差、红彩色差)彩色空间是JPEG和MPEG图像压缩中使用的一种颜色表示方式。

转换公式:Y=0.299*R+0.587*G+0.114*BCb=-0.1687*R-0.3313*G+0.5*B+128Cr=0.5*R-0.4187*G-0.0813*B+1285.RGB到XYZXYZ彩色空间是一种基于人眼视觉特性定义的设备无关的颜色表示方式。

转换公式:6. RGB到LabLab彩色空间是一种设备无关的颜色表示方式,用于表示人眼视觉信号的三个特性:亮度、a色度和b色度。

yuv rgb 互转 公式 及算法

yuv rgb 互转 公式 及算法

1 前言自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用的过程,所以在不同的应用领域中为了更好更准确的满足各自的需求,就出现了各种各样的色彩空间模型来量化的描述颜色。

我们比较常接触到的就包括RGB / CMYK / YIQ / YUV / HSI等等。

对于数字电子多媒体领域来说,我们经常接触到的色彩空间的概念,主要是RGB , YUV 这两种(实际上,这两种体系包含了许多种具体的颜色表达方式和模型,如sRGB, Adobe RGB, YUV422, YUV420 …), RGB是按三基色加光系统的原理来描述颜色,而YUV则是按照亮度,色差的原理来描述颜色。

即使只是RGB YUV这两大类色彩空间,所涉及到的知识也是十分丰富复杂的,自知不具备足够的相关专业知识,所以本文主要针对工程领域的应用及算法进行讨论。

2 YUV相关色彩空间模型对于YUV模型,实际上很多时候,我们是把它和YIQ / YCrCb模型混为一谈的。

实际上,YUV模型用于PAL制式的电视系统,Y表示亮度,UV并非任何单词的缩写。

YIQ模型与YUV模型类似,用于NTSC制式的电视系统。

YIQ颜色空间中的I和Q分量相当于将YUV空间中的UV分量做了一个33度的旋转。

YCbCr颜色空间是由YUV颜色空间派生的一种颜色空间,主要用于数字电视系统中。

从RGB到YCbCr的转换中,输入、输出都是8位二进制格式。

三者与RGB的转换方程如下:RGB -> YUV:实际上也就是:Y=0.30R+0.59G+0.11B ,U=0.493(B-Y) ,V=0.877(R-Y)RGB -> YIQ:RGB -> YCrCb:从公式中,我们关键要理解的一点是,UV / CbCr信号实际上就是蓝色差信号和红色差信号,进而言之,实际上一定程度上间接的代表了蓝色和红色的强度,理解这一点对于我们理解各种颜色变换处理的过程会有很大的帮助。

matlab不同颜色合成算法

matlab不同颜色合成算法

matlab不同颜色合成算法Matlab中有多种不同的颜色合成算法,这些算法可以用于生成不同颜色的图像或合并多个颜色通道。

本文将介绍几种常见的颜色合成算法,并讨论它们的原理和应用。

一、RGB颜色模型RGB颜色模型是最常用的颜色表示方式之一,它将颜色表示为红色、绿色和蓝色三个分量的组合。

在Matlab中,可以使用RGB颜色模型来合成新的颜色。

在RGB颜色模型中,每个颜色通道的取值范围是0到255。

通过调整不同颜色通道的取值,可以合成出各种不同的颜色。

例如,要合成一个红色,可以将红色通道的取值设置为255,而将绿色和蓝色通道的取值都设置为0。

二、CMYK颜色模型CMYK颜色模型是一种专门用于印刷的颜色模型,它将颜色表示为青色、品红色、黄色和黑色四个分量的组合。

在Matlab中,可以使用CMYK颜色模型来合成新的颜色。

在CMYK颜色模型中,每个颜色通道的取值范围是0到100。

通过调整不同颜色通道的取值,可以合成出各种不同的颜色。

例如,要合成一个品红色,可以将品红色通道的取值设置为100,而将青色、黄色和黑色通道的取值都设置为0。

三、HSV颜色模型HSV颜色模型是一种常用的颜色模型,它将颜色表示为色调、饱和度和亮度三个分量的组合。

在Matlab中,可以使用HSV颜色模型来合成新的颜色。

在HSV颜色模型中,色调的取值范围是0到360,饱和度和亮度的取值范围是0到1。

通过调整不同颜色通道的取值,可以合成出各种不同的颜色。

例如,要合成一个红色,可以将色调的取值设置为0,而将饱和度和亮度的取值都设置为1。

四、YUV颜色模型YUV颜色模型是一种常用的视频颜色模型,它将颜色表示为亮度、蓝色差和红色差三个分量的组合。

在Matlab中,可以使用YUV颜色模型来合成新的颜色。

在YUV颜色模型中,亮度的取值范围是0到1,蓝色差和红色差的取值范围是-0.5到0.5。

通过调整不同颜色通道的取值,可以合成出各种不同的颜色。

例如,要合成一个蓝色,可以将亮度的取值设置为0.5,而将蓝色差和红色差的取值都设置为-0.5。

几种颜色模型的转换公式

几种颜色模型的转换公式

几种颜色模型的转换公式颜色模型用于描述和表示颜色的方法,其中最常见的包括RGB、CMYK 和HSV等模型。

在实际应用中,经常需要在不同颜色模型之间进行转换。

下面将详细介绍RGB到CMYK、RGB到HSV以及CMYK到RGB的转换公式。

一、RGB到CMYK的转换公式:RGB模型是由红色(R)、绿色(G)和蓝色(B)的光强度组成,而CMYK模型是由青色(C)、品红色(M)、黄色(Y)和黑色(K)的浓度表示的。

下面是RGB到CMYK的转换公式:1.将RGB值除以255,得到RGB的标准化值2.通过以下公式计算出CMY的值:C=1-RM=1-GY=1-B3.通过以下公式计算出K的值:K = min(C, M, Y)4.将CMY的值减去K,得到CMYK的值:C=(C-K)/(1-K)M=(M-K)/(1-K)Y=(Y-K)/(1-K)K=K二、RGB到HSV的转换公式:HSV模型是由色调(H)、饱和度(S)和明度(V)的数值表示的。

下面是RGB到HSV的转换公式:1.将RGB值除以255,得到RGB的标准化值2.通过以下公式计算出V的值:V = max(R, G, B)3.通过以下公式计算出S的值:if V == 0:S=0else:S = (V - min(R, G, B)) / V4.通过以下公式计算出H的值:if V == R:H = (G - B) / (max(R, G, B) - min(R, G, B))elif V == G:H = 2 + (B - R) / (max(R, G, B) - min(R, G, B))else:H = 4 + (R - G) / (max(R, G, B) - min(R, G, B))H=H*60if H < 0:H=H+360三、CMYK到RGB的转换公式:CMYK模型中的C、M、Y和K表示颜色的浓度,而RGB模型表示颜色的光强度。

下面是CMYK到RGB的转换公式:1.通过以下公式计算出R的值:R=255*(1-C)*(1-K)2.通过以下公式计算出G的值:G=255*(1-M)*(1-K)3.通过以下公式计算出B的值:B=255*(1-Y)*(1-K)以上就是RGB到CMYK、RGB到HSV以及CMYK到RGB的转换公式。

[复习]RGB、Lab、YUV、HSI、HSV等颜色空间的区别

[复习]RGB、Lab、YUV、HSI、HSV等颜色空间的区别

RGB、Lab、YUV、HSI、HSV等颜色空间的区别RGB、Lab、YUV、HSI、HSV等颜色空间的区别RGB颜色空间RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来的光线中的R、G、B成分,并用它来表示原稿的颜色。

RGB色彩空间称为与设备相关的色彩空间,因为不同的扫描仪扫描同一幅图像,会得到不同色彩的图像数据;不同型号的显示器显示同一幅图像,也会有不同的色彩显示结果。

显示器和扫描仪使用的RGB空间与CIE 1931 RGB真实三原色表色系统空间是不同的,后者是与设备无关的颜色空间。

btw:Photoshop的色彩选取器(Color Picker)。

可以显示HSB、RGB、LAB 和CMYK 色彩空间的每一种颜色的色彩值。

Lab 颜色空间Lab颜色空间是由CIE(国际照明委员会)制定的一种色彩模式。

自然界中任何一点色都可以在Lab空间中表达出来,它的色彩空间比RGB 空间还要大。

另外,这种模式是以数字化方式来描述人的视觉感应,与设备无关,所以它弥补了RGB和 CMYK模式必须依赖于设备色彩特性的不足。

由于Lab的色彩空间要比RGB模式和CMYK模式的色彩空间大。

这就意味着RGB以及CMYK所能描述的色彩信息在Lab空间中都能得以影射。

Lab空间取坐标Lab,其中L亮度;a的正数代表红色,负端代表绿色;b的正数代表黄色,负端代表兰色(a,b)有L=116f(y)-16, a=500[f(x/0.982)-f(y)],b=200[f(y)-f(z/1.183 )];其中: f(x)=7.787x+0.138, x<0.008856; f(x)=(x)1/3,x>0.008856。

Ycbcr空间,及和RGB之间转换关系

Ycbcr空间,及和RGB之间转换关系

Ycbcr空间,及和RGB之间转换关系CbCr是DVD、摄像机、数字电视等消费类视频产品中,常⽤的⾊彩编码⽅案。

YCbCr不是⼀种绝对⾊彩空间,是YUV压缩和偏移的版本。

YCbCr其中Y是指亮度分量,Cb指蓝⾊⾊度分量,⽽Cr指红⾊⾊度分量。

⼈的⾁眼对视频的Y分量更敏感,因此在通过对⾊度分量进⾏⼦采样来减少⾊度分量后,⾁眼将察觉不到的图像质量的变化。

主要的⼦采样格式有YCbCr 4:2:0、YCbCr 4:2:2 和 YCbCr 4:4:4。

4:2:0表⽰每4个像素有4个亮度分量,2个⾊度分量 (YYYYCbCr),仅采样奇数扫描线,是便携式视频设备(MPEG-4)以及电视会议(H.263)最常⽤格式;4:2:2表⽰每4个像素有4个亮度分量,4个⾊度分量(YYYYCbCrCbCr),是DVD、数字电视、HDTV 以及其它消费类视频设备的最常⽤格式;4:4:4表⽰全像素点阵(YYYYCbCrCbCrCbCrCbCr),⽤于⾼质量视频应⽤、演播室以及专业视频产品。

// 其中R G B Y Cb Cr得取值均为0-255// RGB转换为YCbCr// |Y | |16 | |65.738 129.057 25.06 | |R|// |Cb| = |128| + (1/256) * |-37.945 -74.494 112.43| * |G|// |Cr| |128| |112.439 -94.154 -18.28| |B|Y = (66*R + 129*G + 25*B + 128)/256.0f + 16;Cb = (-38*R - 74*G + 112*B + 128)/256.0f + 128;Cr = (112*R - 94*G - 18*B + 128)/256.0f + 128;Y = (Y<0?0:(Y>255?255:Y));Cb =(Cb<0?0:(Cb>255?255:Cb));Cr =(Cr<0?0:(Cr>255?255:Cr));// YCbCr转换为RGB//|R| |298.082 0 408.58 | |Y -16 |//|G| = (1/256) * |298.082 -100.291 -208.12| * |Cb -128|//|B| |298.082 516.411 0 | |Cr -128|Y -= 16;Cb -= 128;Cr -= 128;R = (298*Y + 409*Cr + 128)/256;G = (298*Y - 100*Cb - 208*Cr + 128)/256;B = (298*Y + 516*Cb + 128)/256;R = (R<0?0:(R>255?255:R));G = (G<0?0:(G>255?255:G));B = (B<0?0:(B>255?255:B));。

基于FPGA的RGB到YCbCr色空间转换

基于FPGA的RGB到YCbCr色空间转换

基于FPGA的RGB到YCbCr色空间转换金晓冬;常青【摘要】人类获得信息的主要方式是视觉.通常情况下颜色有两种描述方式,一种用RGB色度空间表示,一种用YCbCr色度空间表示.在视频处理过程中,通常获得显示的颜色用RGB色空间来表示,但为了降低带宽和存储量,引入了TCbCr色空间.YCbCr色空间是亮度和色度的概念,而人眼对亮度和色度比较敏感,所以在传输过程中使用YCbCr色空间易于压缩,方便传输和处理,可以有效地降低带宽和存储量.在此,通过Verilog语言实现RGB到YCbCr色空间的转换,并通过FPGA进行了验证,得到正确的结果.【期刊名称】《现代电子技术》【年(卷),期】2009(032)018【总页数】3页(P73-75)【关键词】RGB;YCbCr;Verilog语言;FPGA;转换【作者】金晓冬;常青【作者单位】国防科技大学,电子科学与通信工程学院,湖南,长沙,410073;国防科技大学,电子科学与通信工程学院,湖南,长沙,410073【正文语种】中文【中图分类】TP368.10 引言近年来,随着社会的进步,人们对图像及视频的质量要求越来越高。

因此,图像视频的处理也越来越受到人们重视。

通常,从摄像仪和扫描仪所获得的颜色,以及计算机显示所用的颜色都是RGB色空间,如果不进行转换,在传输和处理过程中,会占用大量的带宽和存储量,不利于传输和处理。

为此,人们找到了另一种色空间YCbCr。

因为人们对亮度的变化比对色度的变化更为敏感,所以减少带宽引起的颜色损失很小,人眼几乎感觉不出来。

基于以上原因,需要找出一种RGB到YCbCr的转换方法。

在此,给出了色空间从RGB到YCbCr转换的设计以及FPGA的实现。

1 RGB色空间与YCbCr色空间1.1 RGB色空间根据三基色原理,可以利用三种基色配出各种不同的彩色。

在选择基色时,应力求获得方法简单,色度稳定、准确,以及由其配出的颜色尽可能多。

RGB色空间是一种简单实用的色空间,被普遍使用在计算机系统和因特网中,它能使颜色从一个平台映射到另外一个平台而不会严重丢失颜色信息。

RGB彩色空间与YCrCb色彩空间之间的相互转换研究背景意义

RGB彩色空间与YCrCb色彩空间之间的相互转换研究背景意义

RGB彩色空间与YCrCb色彩空间之间的相互转换研究背景意义1研究的背景2研究的意义由于RGB彩色空间在计算机领域有着举足轻重的地位,色彩显示器使用红、绿、蓝3色来产生需要的颜色,然而在处理现实世界的图像时,RGB并非很有效。

而YCrCb格式的色彩空间易于实现压缩,方便传输和处理,它被广泛用于广播、电视,正是由于这一点,它也被广泛应用于计算机视频和图像处理中。

因而RGB 色彩空间与YCrCb色彩空间之间的相互转换具有广泛的应用空间和前景。

1研究的背景在数字图像处理过程中,为了提高处理的效率和精度,需要根据实际应用环境选择合适的颜色空间。

数字图像处理中常用的颜色空间有RGB、YUV、HSI等,它们具有不同的特性和适用范围,相互之间存在一定的转换关系,可根据实际需要进行相互转换。

随着计算机多媒体技术的发展,彩色图像处理技术在数字图像处理中得到了广泛的应用。

与灰度图像相比,彩色图像提供了更丰富的信息,能表达更多的信息,给人以更为丰富的视觉感受。

但同时也因信息量大而在传输和储存中给人们带来了新的挑战。

由于这些彩色图像采用不同的色彩空间表现而存在一定的冗余,而且不同的色彩空间适合不同的应用场合,如何有效地利用这些丰富多彩的颜色空间成为数字图像处理中一个新问题。

色彩空间把抽象的、主观的视觉感受具体化为三维空间中的位置和向量,使各种彩色图像、彩色设备的颜色特性都能实现可视化。

然而,由于人眼的感受不均匀,使得所观察到的颜色不能在颜色空间中完全表达。

到目前为止,没有一种颜色空间可以对颜色做出完全理想化的描述。

因此,在对彩色图像进行处理研究时,需要根据实际要求选择相应的颜色空间。

YUV色彩空间和RGB色彩空间是两种不同彩色空间的表示方法。

其中,YUV格式以其易于实现压缩,方便传输和处理被广泛运用于广播电视系统和及计算机视频、图像系统中。

RGB一般是显示屏幕的标准输入格式,因此实际应用中经常需要将YUV与RGB的色彩空间转换。

matlab图像类型与彩色模型的转换

matlab图像类型与彩色模型的转换

第六讲图像类型与彩色模型的转换【目录】一、图像类型的转换 (1)1、真彩图像→索引图像 (2)2、索引图像→真彩图像 (2)3、真彩图像→灰度图像 (3)4、真彩图像→二值图像 (3)5、索引图像→灰度图像 (4)6、灰度图像→索引图像 (4)7、灰度图像→二值图像 (5)8、索引图像→二值图像 (6)9、数据矩阵→灰度图像 (6)二、彩色模型的转换 (7)1、图像的彩色模型 (7)2、彩色转换函数 (7)三、纹理映射 (9)【正文】一、图像类型的转换1、真彩图像→索引图像【格式】X =d i t h e r (R G B ,m a p )【说明】按指定的颜色表m a p 通过颜色抖动实现转换 【输入】R G B 可以是d o u b l e 或u i n t 8类型【输出】X 超过256色则为d o u b l e 类型,否则输出为u i n t 8型 10020030040050050100150200250300350100200300400500501001502002503003501002003005010015020025010020030050100150200250图像→灰度图像1002003004005005010015020025030035010020030040050050100150200250300350图像→二值图像C L F ,R G B =i m r e a d ('f l o w e r s .t i f '); B W =i m 2b w (R G B ,0.5);s u b p l o t (1,2,1);s u b i m a g e (R G B );t i t l e ('真彩图') s u b p l o t (1,2,2);s u b i m a g e (B W );t i t l e ('二值图')1002003004005005010015020025030035010020030040050050100150200250300350图像→灰度图像【例】C L F ,l o a d t r e e s ; I =i n d 2g r a y (X ,m a p ); N e w m a p =r g b 2g r a y (m a p );s u b p l o t (2,2,1);s u b i m a g e (X ,m a p );t i t l e ('索引图') s u b p l o t (2,2,3);s u b i m a g e (I );t i t l e ('格式1灰度图')索引图10020030050100150200250格式1灰度图10020030050100150200250格式2灰度图10020030050100150200250度图像→索引图像【格式1】1、[X ,m a p ]=g r a y 2i n d (I ,n )2、X =g r a y s l i c e (I ,n )3、X =g r a y s l i c e (I ,v )【说明】格式1:将灰度图像转换为灰度级为n 的索引图像X ,n 的默认值为64;格式2:将灰度图像I 均匀量化为n 个等级,然后转换为伪彩色图像X ; 格式3:按指定的阈值矢量v (其中每个元素在0和1之间)对图像I 进行阈值划分,然后转换成索引图像【输入】I 可以是d o u b l e 类型、u i n t 8类型和u i n t 16类型【输出】m a p 的行不大于256,则X 为u i n t 类型,否则为d o u b l e 类型 【例】C L F ,I =i m r e a d ('r i c e .t i f '); [X 1,m a p 1]=g r a y 2i n d (I ,16); X 2=g r a y s l i c e (I ,8);X 3=g r a y s l i c e (I ,255*[0 0.21 0.23 0.26 0.30 0.35 0.6 1.0]'); s u b p l o t (2,2,1);s u b i m a g e (I );t i t l e ('灰度图')s u b p l o t (2,2,2);s u b i m a g e (X 1,m a p 1);t i t l e ('16灰度级图') s u b p l o t (2,2,3);s u b i m a g e (X 2,h o t (8));t i t l e ('均匀量化图')501001502002505010015020025016灰度级图5010015020025050100150200250均匀量化图5010015020025050100150200250非均匀量化图5010015020025050100150200250图像→二值图像【格式一】B W =d i t h e r (I );【格式一】B W =i m 2b w (I ,l e v e l )【说明】格式一用抖动的方式实现转换,格式二用阈值方式转换 【输入】I 可以是d o u b l e 类型和u i n t 8类型 【输出】B W 为u i n t 8类型【例】C L F ,I =i m r e a d ('s a t u r n .t i f '); B W 1=d i t h e r (I ); B W 2=i m 2b w (I ,0.5);s u b p l o t (2,2,1);s u b i m a g e (I );t i t l e ('灰度图')s u b p l o t (2,2,3);s u b i m a g e (B W 1);t i t l e ('抖动二值化') s u b p l o t (2,2,4);s u b i m a g e (B W 2);t i t l e ('阈值二值化')灰度图10020030040050100150200250300抖动二值化10020030040050100150200250300阈值二值化10020030040050100150200250300引图像→二值图像【格式】B W =i m 2b w (X ,m a p ,l e v e l )【输入】X 可以是d o u b l e 类型和u i n t 8类型 【输出】B W 为u i n t 8类型1002003005010015020025010020030050100150200250矩阵→灰度图像【输出】I 为d o u b l e 类型 【例】C L F ;I =i m r e a d ('r i c e .t i f ');A =f i l t e r 2(f s p e c i a l ('s o b e l '),I );原图5010015020025050100150200250转换图5010015020025050100150200250模型的转换 像的彩色模型(1) R G B 模型是色光的彩色模式,R 代表红色,G 代表绿色,B 代表蓝色,通常所说的真彩色。

RGB颜色空间和HSI颜色空间的相互转换

RGB颜色空间和HSI颜色空间的相互转换

RGB颜⾊空间和HSI颜⾊空间的相互转换转载⾃:关于HSI颜⾊空间参照维基百科:也可参考清华⼤学图像处理课件:下⾯是别⼈利⽤opencv来实现的RGB转化为HSI空间核⼼的转换公式:RGB-->HSI截图来⾃中科院刘定⽣⽼师的《数字图像处理与分析》课件。

HSI-->RGB具体的数学公式参照冈萨雷斯版《数字图像处理(第三版)》432-434页,中译版的260-261页。

下⾯贴代码:1 #include "opencv_libs.h"2 #include <highgui.h>3 #include <cv.h>4 #include <math.h>56 /*7 * 描述:实现RGB颜⾊模型到HSI颜⾊模型之间的相互转换8 * 作者:qdsclove(qdsclove@)9 * 时间:16:01 4/17 星期三 201310 */1112 // 将HSI颜⾊空间的三个分量组合起来,便于显⽰13 IplImage* catHSImage(CvMat* HSI_H, CvMat* HSI_S, CvMat* HSI_I)14 {15 IplImage* HSI_Image = cvCreateImage( cvGetSize( HSI_H ), IPL_DEPTH_8U, 3 );1617 for(int i = 0; i < HSI_Image->height; i++)18 {19 for(int j = 0; j < HSI_Image->width; j++)20 {21 double d = cvmGet( HSI_H, i, j );22 int b = (int)(d * 255/360);23 d = cvmGet( HSI_S, i, j );24 int g = (int)( d * 255 );25 d = cvmGet( HSI_I, i, j );26 int r = (int)( d * 255 );2728 cvSet2D( HSI_Image, i, j, cvScalar( b, g, r ) );29 }30 }3132 return HSI_Image;33 }3435 // 将HSI颜⾊模型的数据转换为RGB颜⾊模型的图像36 IplImage* HSI2RGBImage(CvMat* HSI_H, CvMat* HSI_S, CvMat* HSI_I)37 {38 IplImage * RGB_Image = cvCreateImage(cvGetSize(HSI_H), IPL_DEPTH_8U, 3 );3940 int iB, iG, iR;41 for(int i = 0; i < RGB_Image->height; i++)42 {43 for(int j = 0; j < RGB_Image->width; j++)44 {45 // 该点的⾊度H46 double dH = cvmGet( HSI_H, i, j );47 // 该点的⾊饱和度S48 double dS = cvmGet( HSI_S, i, j );49 // 该点的亮度50 double dI = cvmGet( HSI_I, i, j );5152 double dTempB, dTempG, dTempR;53 // RG扇区54 if(dH < 120 && dH >= 0)55 {56 // 将H转为弧度表⽰57 dH = dH * 3.1415926 / 180;58 dTempB = dI * (1 - dS);59 dTempR = dI * ( 1 + (dS * cos(dH))/cos(3.1415926/3 - dH) );60 dTempG = (3 * dI - (dTempR + dTempB));61 }62 // GB扇区63 else if(dH < 240 && dH >= 120)64 {65 dH -= 120;6667 // 将H转为弧度表⽰68 dH = dH * 3.1415926 / 180;6970 dTempR = dI * (1 - dS);71 dTempG = dI * (1 + dS * cos(dH)/cos(3.1415926/3 - dH));72 dTempB = (3 * dI - (dTempR + dTempG));73 }74 // BR扇区75 else76 {77 dH -= 240;7879 // 将H转为弧度表⽰80 dH = dH * 3.1415926 / 180;8182 dTempG = dI * (1 - dS);83 dTempB = dI * (1 + (dS * cos(dH))/cos(3.1415926/3 - dH));84 dTempR = (3* dI - (dTempG + dTempB));85 }8687 iB = dTempB * 255;88 iG = dTempG * 255;89 iR = dTempR * 255;9091 cvSet2D( RGB_Image, i, j, cvScalar( iB, iG, iR ) );92 }93 }9495 return RGB_Image;96 }979899 int main()100 {101 IplImage* img = cvLoadImage("lena.bmp");102103 // 三个HSI空间数据矩阵104 CvMat* HSI_H = cvCreateMat( img->height, img->width, CV_32FC1 );105 CvMat* HSI_S = cvCreateMat( img->height, img->width, CV_32FC1 );106 CvMat* HSI_I = cvCreateMat( img->height, img->width, CV_32FC1 );107108 // 原始图像数据指针, HSI矩阵数据指针109 uchar* data;110111 // rgb分量112 byte img_r, img_g, img_b;113 byte min_rgb; // rgb分量中的最⼩值114 // HSI分量115 float fHue, fSaturation, fIntensity;116117 for(int i = 0; i < img->height; i++)118 {119 for(int j = 0; j < img->width; j++)120 {121 data = cvPtr2D(img, i, j, 0);122 img_b = *data;123 data++;124 img_g = *data;125 data++;126 img_r = *data;127128 // Intensity分量[0, 1]129 fIntensity = (float)((img_b + img_g + img_r)/3)/255;130131 // 得到RGB分量中的最⼩值132 float fTemp = img_r < img_g ? img_r : img_g;133 min_rgb = fTemp < img_b ? fTemp : img_b;134 // Saturation分量[0, 1]135 fSaturation = 1 - (float)(3 * min_rgb)/(img_r + img_g + img_b);136137 // 计算theta⾓138 float numerator = (img_r - img_g + img_r - img_b ) / 2;139 float denominator = sqrt(140 pow( (img_r - img_g), 2 ) + (img_r - img_b)*(img_g - img_b) );141142 // 计算Hue分量143 if(denominator != 0)144 {145 float theta = acos( numerator/denominator) * 180/3.14;146147 if(img_b <= img_g)148 {149 fHue = theta ;150 }151 else152 {153 fHue = 360 - theta;154 }155 }156 else157 {158 fHue = 0;159 }160161 // 赋值162 cvmSet( HSI_H, i, j, fHue );163 cvmSet( HSI_S, i, j, fSaturation);164 cvmSet( HSI_I, i, j, fIntensity );165 }166 }167168 IplImage* HSI_Image = catHSImage( HSI_H, HSI_S, HSI_I );169 IplImage* RGB_Image = HSI2RGBImage( HSI_H, HSI_S, HSI_I );170171 cvShowImage("img", img);172 cvShowImage("HSI Color Model", HSI_Image);173 cvShowImage("RGB Color Model", RGB_Image);174175 cvWaitKey(0);176177 cvReleaseImage( &img );178 cvReleaseImage( &HSI_Image );179 cvReleaseImage( &RGB_Image );180 cvReleaseMat( &HSI_H);181 cvReleaseMat( &HSI_S);182 cvReleaseMat( &HSI_I);183184 cvDestroyAllWindows();185186 return 0;187 }写的⽐较仓促,代码结构稍微有点混乱。

彩色图像工程中常用颜色空间及其转换

彩色图像工程中常用颜色空间及其转换
彩色图像工程中常用颜色空间 及其转换
彩色图像工程是涉及图像处理、计算机视觉和多媒体通信等多个领域的综合性 学科。在彩色图像工程中,颜色空间是用来描述和表示图像中颜色信息的数学 模型。不同的颜色空间适用于不同的应用场景,并在图像处理中发挥关键作用。 本次演示将介绍一些常用的颜色空间,并阐述它们的基本概念和特点,同时讨 论不同颜色空间之间的转换关系及实现方法。
参考内容
在图像处理和计算机视觉领域,彩色图像分割是一种重要的预处理步骤,其目 标是将图像分割成多个区域或对象。基于RGB颜色空间的彩色图像分割方法是 最常见的一种。
一、RGB颜色空间
RGB(Red,Green,Blue)颜色空间是彩色图像处理中最基础的色彩表示方法。 它通过三个通道——红色、绿色和蓝色,来描述像素的颜色。每个像素的RGB 值都对应于一个特定的颜色。
实现方法:首先计算色度和饱和度,然后根据色度计算红、绿、蓝的分量。
3、RGB到YUV转换
RGB到YUV的转换公式为:
Y = 0.299R + 0.587G + 0.114B U = -0.R - 0.G + 0.436B V = 0.615R 0.G - 0.*B
实现方法:根据公式直接计算Y、U、V的分量。
不同颜色空间之间的转换
在实际应用中,往往需要将图像从一种颜色空间转换到另一种颜色空间。这种 转换是有损的,可能会造成颜色的损失或变化。不同颜色空间之间的转换关系 可以通过相应的转换公式和算法来实现。下面列举几种常见的颜色空间转换方 法:
1、RGB到HSV转换
RGB到HSV的转换公式为:
H = arccos[(R-G+B)/3] / π S = max(R,G,B) - min(R,G,B) / max(R,G,B) V = max(R,G,B)

颜色模型转换公式

颜色模型转换公式

颜色模型转换公式2010-07-01 20:08颜色模型转换公式为了用计算机来表示和处理颜色,必须采用定量的方法来描述颜色,即建立颜色模型。

目前广泛使用的颜色模型觉颜色模型。

计算颜色模型又称为色度学颜色模型,主要应用于纯理论研究和计算推导;工业颜色模型侧重于实直接接口的颜色模型和控制。

1、计算颜色模型有CIE的RGB、XYZ、Luv、LCH、LAB、UCS、UVW。

2、工业颜色模型NTSC的RGB、YUV、YIQ、CMYK、YCbCr。

3、视觉颜色模型有HS*系列,包含HSL、HSV(B)。

常见Color Formula/Matrix如下:1、RGB<->CIE XYZa、RGB<->CIE XYZ REC601|X| | 0.607 0.174 0.201| |R||Y| = | 0.299 0.587 0.114| * |G||Z| | 0.000 0.066 1.117| |B||R| | 1.910 -0.532 -0.288| |X||G| = |-0.985 1.999 -0.028| * |Y||B| | 0.058 -0.118 0.898| |Z|b、RGB<->CIE XYZ REC709|X| | 0.412 0.358 0.180| |R||Y| = | 0.213 0.715 0.072| * |G||Z| | 0.019 0.119 0.950| |B||R| | 3.241 -1.537 -0.499| |X||G| = |-0.969 1.876 -0.042| * |Y||B| | 0.056 -0.204 1.057| |Z|c、RGB<->CIE XYZ ITU|X| = | 0.431 0.342 0.178| |R||Y| = | 0.222 0.707 0.071| * |G||Z| = | 0.020 0.130 0.939| |B||R| | 3.063 -1.393 -0.476| |X||G| = |-0.969 1.876 0.042| * |Y||B| | 0.068 -0.229 1.069| |Z|2、RGB<->CMYKa、RGB -> CMYKK = min(1-R, 1-G, 1-B)C = (1-R-K) / (1-K)M = (1-G-K) / (1-K)Y = (1-B-K) / (1-K)b、CMYK->RGBR = 1 - min(1, C *(1-K) + K)G = 1 - min(1, M *(1-K) + K)B = 1 - min(1, Y *(1-K) + K)3、RGB->CIE RGB|Rcie| | 1.167 -0.146 -0.151| |R||Gcie| = | 0.144 0.753 0.159| * |G||Bcie| |-0.001 0.059 1.128| |B|4、CIE XYZ->CIE LabD65 xn = 0.312713 , yn = 0.329016L = 116 * ( ( Y / Yn ) ^ ( 1 / 3 ) ) Y/Yn > 0.008856L = 903.3 * Y / Yn Y/Yn <= 0.008856a = 500*(f(X/Xn)-f(Y/Yn))b = 200*(f(Y/Yn)-f(Z/Zn))5、RGB->HSVV=max(R,G,B)S=(V-min(R,G,B))*255/V if V!=0, 0 otherwise(G - B)*60/S, if V=RH= 180+(B - R)*60/S, if V=G240+(R - G)*60/S, if V=B若H<0,则H=H+360使用上面从0°到360°变化的公式计算色调(hue)值,确保它们被2 除后能试用于8位。

YYCbCr与RGB之间的转换关系

YYCbCr与RGB之间的转换关系

YYCbCr与RGB之间的转换关系1YUV空间简介YUV为亮度-色差形式的色彩空间格式,Y表示亮度,U, V表示色差。

YUV色彩空间中,主要有三种格式:YUV, YIQ和YCbCr。

YCbCr特指CCITT601 (CCITT后改名为ITU-T)规定的数字化后的色彩空间格式。

YUV特指JPEG图像压缩标准中规定的色彩空间格式。

YUV和YIQ的区别在于它们在色度矢量图中的位置不同而已,多了一个33度角的旋转。

YcbCr则为MPEG和H.26X标准所采纳。

注意,凡是标明符合ITU-T 601 或ITU-T 656接口标准的视频采集器/视频输入端口,其采集到的视频数据均为YCbCr格式,即使有关文档里用的是YUV字样,但实际上是YCbCr格式(U相当于Cb,V相当于Cr)。

比如:我们的PHILIPS 1300的VI,1500的AI, SAA7113等,均为YCbCr格式。

2YIQ和RGB之间的转换关系RGB到YIQ的转换关系如下式:Y = 0299 R + 0.587 G + 0.144 BI = 0.596R – 0.274G – 0.322 B (式1)Q = 0. 211R – 0.522 G + 0.311 BYIQ到RGB的转换关系为:R = Y + 0.956 I + 0.623 QG = Y – 0.272 I – 0.648 Q (式2)B = Y – 1.105 I + 0.705 Q3YUV和RGB之间的转换关系注意,这里的YUV特指JPEG图像压缩标准中规定的色彩空间格式。

在JPEG图像信息压缩标准中,规定R,G,B的范围为0~255,转换后的Y取值范围为0~255,U, V的取值范围为0 ~ 128。

RGB到YUV 的转换关系如下式:Y = 0.299 R + 0.587 G + 0.144 B ;U = -0.1678 R - 0.3313 G+ 0.5 B; (式3)V = 0.5 R - 0.4187 G - 0.0813 B;YCbCr到RGB的转换关系如下式:R = Y + 1.1402 VG = Y – 0.34414 U – 0.71414 V (式4)B = Y + 1.1772 U4YCbCr和RGB之间的转换关系注意,这里的YCbCr特指CCITT601规定的数字化后的色彩空间格式CCITT601,对R,G,B和Y,Cb,Cr之间的转换关系做了规定:亮度值Y的范围为16 ~235,色度值Cb,Cr的范围为16 ~240,YCbCr和RGB之间的转换关系可以由上面的(式3)和(式4)做如下转换才能得到正确的结果:Y = 219/255 * Y + 16 (等式左边的Y指的是YcbCr中的Y分量)Cb = 224/255 * U + 128Cr = 224/255 * V + 128即:Y = 0.2568 R + 0.504 G + 0.1237 B + 16Cb = -0.1474 R - 0.291 G+ 0.4392 B + 128 (式4)Cr = 0.4392 R - 0.3678 G - 0.0714 B + 128YCbCr到RGB之间的转换关系为:R = 1.16438 Y + 1.596 Cr – 222.92G = 1.16438 Y – 0.3917 Cb – 0.81297 Cr + 135.576 (式5)B = 1.16438 Y + 2.016Cb – 190.1655附录1:Converting Between YUV and RGB(From MS)It is frequently necessary to convert between YUV pixel formats (used by the JPEG and MPEG co mpression methods) and RGB format (used by many hardware manufacturers.) The following for mulas show how to compute a pixel's value in one format from the pixel value in the other format.YUV format allows for higher compression rates without a proportionately high loss of data, as the U and V portions can be highly compressed and computed from the non- or lowly-compr essed Y portion.Computer RGB888, or full-scale RGB, uses 8 bits each for the red, green, and blue channels. Blac k is represented by R = G = B = 0, and white is represented by R = G = B = 255. The 4:4:4 YUV f ormat uses 8 bits each for the Y, U, and V channels.************************************************************Converting RGB888 to YUV************************************************************The following formulas define the conversion from RGB to YUV:Y = ( ( 66 * R + 129 * G + 25 * B + 128) >> 8) + 16U = ( ( -38 * R - 74 * G + 112 * B + 128) >> 8) + 128V = ( ( 112 * R - 94 * G - 18 * B + 128) >> 8) + 128These formulas produce 8-bit results using coefficients that require no more than 8 bits of (unsign ed) precision. Intermediate results require up to 16 bits of precision.************************************************************Converting 8-bit YUV to RGB888************************************************************The following coefficients are used in conversion process:C = Y - 16D = U - 128E = V - 128Using the previous coefficients and noting that clip() denotes clipping a value to the range of 0 to 255, the following formulas provide the conversion from YUV to RGB:R = clip(( 298 * C + 409 * E + 128) >> 8)G = clip(( 298 * C - 100 * D - 208 * E + 128) >> 8)B = clip(( 298 *C + 516 *D + 128) >> 8)These formulas use some coefficients that require more than 8 bits of precision to produce each 8-bit result, and intermediate results require more than 16 bits of precision.Note All units range from 0 (zero) to 1.0 (one). In DirectDraw, they range from 0 to 255. Overflo w and underflow can (and does) occur, and the results must be saturated.To convert 4:2:0 or 4:2:2 YUV to RGB, convert the YUV data to 4:4:4 YUV, and then convert fro m 4:4:4 YUV to RGB.。

yCbCr与rgb的转换

yCbCr与rgb的转换

YUV和RGB的转换:Y = 0.299 R + 0.587 G + 0.114 BU = -0.1687 R - 0.3313 G + 0.5 B + 128V = 0.5 R - 0.4187 G - 0.0813 B + 128R = Y + 1.402 (V-128)G = Y - 0.34414 (U-128) - 0.71414 (V-128)B = Y + 1.772 (U-128)yCbCr与rgb的转换:Y’ = 0.257*R' + 0.504*G' + 0.098*B' + 16Cb' = -0.148*R' - 0.291*G' + 0.439*B' + 128Cr' = 0.439*R' - 0.368*G' - 0.071*B' + 128R' = 1.164*(Y’-16) + 1.596*(Cr'-128)G' = 1.164*(Y’-16) - 0.813*(Cr'-128) - 0.392*(Cb'-128)B' = 1.164*(Y’-16) + 2.017*(Cb'-128)YUV和RGB转换RGB和YUV都是色彩空间,用于表示颜色,两者可以相互转化。

YUV是被欧洲电视系统所采用的一种颜色编码方法(属于PAL)。

YUV主要用于优化彩色视频信号的传输,使其向后兼容老式黑白电视。

与R GB视频信号传输相比,它最大的优点在于只需占用极少的带宽(RGB要求三个独立的视频信号同时传输)。

中"Y"表示明亮度(Lumina nce或Luma),也就是灰阶值;是个基带信号。

而"U"和"V"表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

Matlab图像颜色空间转换

Matlab图像颜色空间转换

Matlab图像颜色空间转换实验内容用matlab软件编程实现下述任务:读入彩色图像,提取其中的R、G、B颜色分量,并展示出来。

我们学习了多种表示图像的颜色空间,请编写程序将图像转换到YUV、YIQ、YCrCb、HIS、CMY等颜色空间,并展示出来。

颜色空间的转化关系参考以下公式:原始图片三个色调分量YUV与RGB之间的转换Y=0.229R+0.587G+0.114B U=-0.147R-0.289G+0.436B V=0.615R-0.515G-0.100BYIQ与RGB之间的转换Y=0.299R+0.587G+0.114B I=0.596R-0.275G-0.321B Q=0.212R-0.523G+0.311BYCrCb与RGB之间的转换Y = 0.2990R + 0.5870G + 0.1140B
Cr = 0.5000R - 0.4187G - 0.0813B + 128Cb = -0.1687R - 0.3313G + 0.5000B + 128HSI与RGB之间的转换I=〔R+G+B〕/3H=arccos{ 0.5*((R-G)+(R-B)) / ((R-G)^2 + (R-B)(G-B))^0.5} S=1-[min〔R,G,B〕/ I ]CMY 与RGB 之间的转换⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡B G R Y M C 111心得体会查阅了很多资料,并且学习了关于matlab实现图像颜色空间转换的过程。

不同的颜色空间在描述图像的颜色时侧重点不同。

如RGB〔红、绿、蓝三原色〕颜色空间适用于彩色监视器和彩色摄像机,HSI〔色调、饱和度、亮度〕更符合人描述和解释颜色的方式〔或称为HSV,色调、饱和度、亮度〕,CMY〔青、深红、黄〕、CMYK〔青、深红、黄、黑。

〕主要针对彩色打印机、复印机等,YIQ〔亮度、色差、色差〕是用于NTSC规定的电视系统格式,YUV〔亮度、色差、色差〕是用于PAL规定的电视系统格式,YCbCr〔亮度单一要素、蓝色与参考值的差值、红色与参考值的差值〕在数字影像中广泛应用。

常见色彩模型的相互转换

常见色彩模型的相互转换

2013-2014学年第二学期图像通信课程设计报告设计题目:图像的各种颜色空间转换摘要所谓三基色原理,是指自然界常见的各种颜色光都可由红、绿、蓝三种色光按照不同比例相配而成。

同样,绝大多数颜色也可以分解成红、绿、蓝三种色光。

这就是色度学中的最基本的原理。

彩色模型的用途是在某些标准下用通常课接受的方式简化彩色规范。

常常涉及到用几种不同的彩色空间表示图形和图像的颜色,以应对不同的场合和应用。

因此,在数字图像的生成、存储、处理及显示时,对应不同的彩色空间,需要作不同的处理和转换。

现在主要的彩色模型有RGB模型、CMY模型、YUV模型、YIQ 模型、YcbCr模型、HSI模型等。

本设计主要使用MATLAB编程的方法,实现RGB与其余四种模型之间的互化。

即使用不同的色彩模型表示同一图形或图像。

通过转换实现色彩模型的变换之后,可以让同一幅图像以各种模式在全球范围内流通,所以本设计具有一定的实际意义。

一般的图像原始都为RGB—加色混合色彩模型,它与剩下的几个色彩模型之间存在着函数对应关系,通过矩阵运算改变模型的参数就可以实现不同色彩模型之间的相互转换。

例如CMY—减色混合色彩模型,就是利用青色、深红色、黄色这三种彩色按照一定比例来产生想要的彩色,CMY是RGB三基色的补色,它与RGB存在如下关系:[CMY]=[111]-[RGB],使用MATLAB编程时,读入三个通道的数值,按照对应关系进行矩阵变换就可以转换成CMY色彩模型。

其他色彩模型转换原理与此相似。

关键词:MATLAB,RGB、YUV、YIQ、YCbCr、HSI、色彩模型一、设计任务、目的和要求任务:实现RGB模型、CMY模型、YUV模型、YIQ模型、YcbCr模型、HSI 模型这几种不同色彩模型之间的相互转换要求:最终结果用图像显示二、总体方案设计系统运行环境:WINDOWS 7操作系统编程软件平台:MATLAB2012b编码算法原理:将原图的三基色数值读入,根据不同色彩模型之间的相互关系,通过矩阵运算改变不同的亮度和色度等信息来实现色彩模型的转换,然后将变换后的图像导出流程图:三、设计实现1、RGB模型和CMY模型的互化变换公式:[CMY]=[111]-[RGB]clc;clear;close;X=imread('1.jpg');%读取原始图形Image = im2double(X); %归一化处理subplot(131),imshow(Image),title('原图');%读取图像的RGB分量r = Image(:, :, 1);g = Image(:, :, 2);b = Image(:, :, 3);%进行RGB到CMY的变换C=1-r;M=1-g;Y=1-b;CMY = cat(3, C, M, Y);subplot(132),imshow(CMY),title('RGB转CMY'); %进行CMY到RGB的反变换r1=1-C;g1=1-M;b1=1-Y;rgb1 = cat(3, r1, g1, b1);subplot(133),imshow(rgb1),title('CMY转RGB'); %数值分析反变换后和原图的差别x=rgb1-Image;disp(x);2、RGB模型和YUV色彩模型的互化变换公式:[YUV]=100.0515.0615.0436.0289.0147.0114.0587.0299.0----[RGB]clear all;close all;clc;%清除内存空间信息,以便程序运行img=imread('1.jpg');%读取原始图形img=im2double(img);%将图像映射到[0,1]区间;[m,n,dim]=size(img);%获得原图像长、宽、维数的数据subplot(131),imshow(img),title('原图');%%图像的RGBR=img(:,:,1);G=img(:,:,2);B=img(:,:,3);%%RGB2YUVY=zeros(m,n); %亮度I=zeros(m,n); %彩度V=zeros(m,n); %浓度%定义乘法矩阵matrix=[0.299 0.587 0.114;-0.147 -0.298 0.436;0.615 -0.515 -0.100];%用for循环实现图像中每一个点的矩阵变换,即实现模型变换for i=1:mfor j=1:ntmp=matrix*[R(i,j) G(i,j) B(i,j)]';Y(i,j)=tmp(1);U(i,j)=tmp(2);V(i,j)=tmp(3);endend%使Y、U、V分量全部在[0,255]区间内Y(Y > 255) = 255;Y(Y < 0) = 0;UU > 255) = 255;U (U < 0) = 0;V(V > 255) = 255;V (V < 0) = 0;YUV = cat(3, Y, U, V);subplot(132),imshow(YUV),title('YUV');%%YUV2RGBmatrix=inv(matrix);%使用inv函数,求反变换矩阵for i=1:mfor j=1:ntmp=matrix*[Y(i,j) U(i,j) V(i,j)]';R(i,j)=tmp(1);G(i,j)=tmp(2);B(i,j)=tmp(3);endendimg1(:,:,1)=R;img1(:,:,2)=G;img1(:,:,3)=B;%将R、G、B分量全部化为[0,255]区间内R(R > 255) = 255;R(R < 0) = 0;G(G > 255) = 255;G(G < 0) = 0;B(B > 255) = 255;B(B < 0) = 0;subplot(133),imshow(img1),title('反变换');%比较x=img-img;disp(x);3、RGB模型和YIQ色彩模型的互化变换公式:[YIQ]=311.0523.0212.0321.0275.0596.0114.0587.0299.0--[RGB]clear all;close all;clc;img=imread('1.jpg');%读取矩阵img=im2double(img);%将图像映射到[0,1]区间。

彩色图像——RGB色系、HSI色系、YUV、YCbCr

彩色图像——RGB色系、HSI色系、YUV、YCbCr
第七章
彩色图像
一、彩色的描述原理: 可视光区的波长在400nm~700nm,当光 谱采样限制到三个人类视觉系统敏感的红、 绿、蓝光波段时,对这三个光谱带的光能量 进行采样,就可以得到一幅彩色图像。
紫外光
400nm 435.8nm 546.1nm
红外光
可见光区
700nm 780nm
第七章
彩色图像
二、感兴趣的范围: 红外区、可见光区一直到紫外光区。 三、多光谱图像: 光谱采样不限于三个波段,即为多光谱图 像。其研究课题最多的是在遥感领域。
R1 A1 G1 B1
R2 G2 B2
R3 G3 B3
R* A2 0 0
0 G* 0
0 0 B*
一、 彩色补偿
4)进行彩色补偿 设
Rs ( x , y ) S ( x, y ) Gs ( x, y ) Bs ( x , y )
返回
彩色图像灰度级校正处理示例
彩色图像灰度级校正处理示例
返回
基于色差压缩的效果图
原图
返回
基于YCrCb 压缩图
基于YUV 压缩图
彩色补偿效果图
ቤተ መጻሕፍቲ ባይዱ
返回
彩色补偿的作用示意图
返回
彩色平衡效果图
返回
饱和度效果示意图
返回
色度效果示意图
返回
亮度效果示意图
返回
红点顺时针移动的效果
返回
红点逆时针移动的效果
返回
红点上、下移动的效果
返回
红点向圆心方向移动的效果
得到的图像就是彩色平衡后的图像。
7.3 用彩色信息进行图像识别
对灰度图像: 灰度跳变的视觉反 映是边界的存在。 对彩色图像: 颜色跳变的视觉反 映是边界的存在。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2013-2014学年第二学期图像通信课程设计报告设计题目:图像的各种颜色空间转换摘要所谓三基色原理,是指自然界常见的各种颜色光都可由红、绿、蓝三种色光按照不同比例相配而成。

同样,绝大多数颜色也可以分解成红、绿、蓝三种色光。

这就是色度学中的最基本的原理。

彩色模型的用途是在某些标准下用通常课接受的方式简化彩色规范。

常常涉及到用几种不同的彩色空间表示图形和图像的颜色,以应对不同的场合和应用。

因此,在数字图像的生成、存储、处理及显示时,对应不同的彩色空间,需要作不同的处理和转换。

现在主要的彩色模型有RGB模型、CMY模型、YUV模型、YIQ 模型、YcbCr模型、HSI模型等。

本设计主要使用MATLAB编程的方法,实现RGB与其余四种模型之间的互化。

即使用不同的色彩模型表示同一图形或图像。

通过转换实现色彩模型的变换之后,可以让同一幅图像以各种模式在全球范围内流通,所以本设计具有一定的实际意义。

一般的图像原始都为RGB—加色混合色彩模型,它与剩下的几个色彩模型之间存在着函数对应关系,通过矩阵运算改变模型的参数就可以实现不同色彩模型之间的相互转换。

例如CMY—减色混合色彩模型,就是利用青色、深红色、黄色这三种彩色按照一定比例来产生想要的彩色,CMY是RGB三基色的补色,它与RGB存在如下关系:[CMY]=[111]-[RGB],使用MATLAB编程时,读入三个通道的数值,按照对应关系进行矩阵变换就可以转换成CMY色彩模型。

其他色彩模型转换原理与此相似。

关键词:MATLAB,RGB、YUV、YIQ、YCbCr、HSI、色彩模型一、设计任务、目的和要求任务:实现RGB模型、CMY模型、YUV模型、YIQ模型、YcbCr模型、HSI 模型这几种不同色彩模型之间的相互转换要求:最终结果用图像显示二、总体方案设计系统运行环境:WINDOWS 7操作系统编程软件平台:MATLAB2012b编码算法原理:将原图的三基色数值读入,根据不同色彩模型之间的相互关系,通过矩阵运算改变不同的亮度和色度等信息来实现色彩模型的转换,然后将变换后的图像导出流程图:三、设计实现1、RGB模型和CMY模型的互化变换公式:[CMY]=[111]-[RGB]clc;clear;close;X=imread('1.jpg');%读取原始图形Image = im2double(X); %归一化处理subplot(131),imshow(Image),title('原图');%读取图像的RGB分量r = Image(:, :, 1);g = Image(:, :, 2);b = Image(:, :, 3);%进行RGB到CMY的变换C=1-r;M=1-g;Y=1-b;CMY = cat(3, C, M, Y);subplot(132),imshow(CMY),title('RGB转CMY'); %进行CMY到RGB的反变换r1=1-C;g1=1-M;b1=1-Y;rgb1 = cat(3, r1, g1, b1);subplot(133),imshow(rgb1),title('CMY转RGB'); %数值分析反变换后和原图的差别x=rgb1-Image;disp(x);2、RGB模型和YUV色彩模型的互化变换公式:[YUV]=100.0515.0615.0436.0289.0147.0114.0587.0299.0----[RGB]clear all;close all;clc;%清除内存空间信息,以便程序运行img=imread('1.jpg'); %读取原始图形img=im2double(img);%将图像映射到[0,1]区间;[m,n,dim]=size(img);%获得原图像长、宽、维数的数据subplot(131),imshow(img),title('原图');%%图像的RGBR=img(:,:,1);G=img(:,:,2);B=img(:,:,3);%%RGB2YUVY=zeros(m,n); %亮度I=zeros(m,n); %彩度V=zeros(m,n); %浓度%定义乘法矩阵matrix=[0.299 0.587 0.114;-0.147 -0.298 0.436;0.615 -0.515 -0.100];%用for循环实现图像中每一个点的矩阵变换,即实现模型变换for i=1:mfor j=1:ntmp=matrix*[R(i,j) G(i,j) B(i,j)]';Y(i,j)=tmp(1);U(i,j)=tmp(2);V(i,j)=tmp(3);endend%使Y、U、V分量全部在[0,255]区间内Y(Y > 255) = 255;Y(Y < 0) = 0;UU > 255) = 255;U (U < 0) = 0;V(V > 255) = 255;V (V < 0) = 0;YUV = cat(3, Y, U, V);subplot(132),imshow(YUV),title('YUV');%%YUV2RGBmatrix=inv(matrix);%使用inv函数,求反变换矩阵for i=1:mfor j=1:ntmp=matrix*[Y(i,j) U(i,j) V(i,j)]';R(i,j)=tmp(1);G(i,j)=tmp(2);B(i,j)=tmp(3);endendimg1(:,:,1)=R;img1(:,:,2)=G;img1(:,:,3)=B;%将R、G、B分量全部化为[0,255]区间内R(R > 255) = 255;R(R < 0) = 0;G(G > 255) = 255;G(G < 0) = 0;B(B > 255) = 255;B(B < 0) = 0;subplot(133),imshow(img1),title('反变换');%比较x=img-img;disp(x);3、RGB模型和YIQ色彩模型的互化变换公式:[YIQ]=311.0523.0212.0321.0275.0596.0114.0587.0299.0--[RGB]clear all;close all;clc;img=imread('1.jpg');%读取矩阵img=im2double(img);%将图像映射到[0,1]区间。

[m,n,dim]=size(img);%读取图像的长宽等信息subplot(131),imshow(img),title('原图');%%图像的RGBR=img(:,:,1);G=img(:,:,2);B=img(:,:,3);%%RGB2YIQY=zeros(m,n); %亮度I=zeros(m,n); %彩度Q=zeros(m,n); %浓度matrix=[0.299 0.587 0.114;0.596 -0.275 -0.321;0.212 -0.523 0.311];%用for循环实现图像中每一个点的矩阵变换,即实现模型变换for i=1:mfor j=1:ntmp=matrix*[R(i,j) G(i,j) B(i,j)]';Y(i,j)=tmp(1);I(i,j)=tmp(2);Q(i,j)=tmp(3);endendYUV = cat(3, Y, I, Q);subplot(132),imshow(YUV),title('YUV');%显示变换后的图形%YUV2RGBmatrix=inv(matrix);for i=1:mfor j=1:ntmp=matrix*[Y(i,j) I(i,j) Q(i,j)]';R(i,j)=tmp(1);G(i,j)=tmp(2);B(i,j)=tmp(3);endend%将R、G、B三个分量赋予到img矩阵中img(:,:,1)=R;img(:,:,2)=G;img(:,:,3)=B;subplot(133),imshow(img),title('反变换');%得到反变换的图形%将反变换图形与原始图形进行比较x=img1-img;disp(x);4、RGB色彩模型和YCbCr色彩模型的互化变换公式:[YCbCr]=0813.04187.0500.0500.03313.01687.0114.0587.0299.0----[RGB]+[128128]clc;clear;close;src=imread('1.jpg');subplot(141),imshow(src),title('原图');%得到以double形式存在的R、G、B分量r = double(src(:,:,1));g = double(src(:,:,2));b = double(src(:,:,3));% convert...y = floor(0.299*r + 0.587*g + 0.114*b+0); %floor(pi)=3; floor(3.5)=3; floor(-3.2)=-4;向负方向舍入Cb = floor(-0.1687*r - 0.3313*g + 0.5*b+128);Cr = floor(0.5*r - 0.4187*g - 0.0813*b+128);%对所得的各个分量进行调整,使之介于[0,255]区间内y(y > 255) = 255;y(y < 0) = 0;Cb(Cb > 255) = 255;Cb(Cb < 0) = 0;Cr(Cr > 255) = 255;Cr(Cr < 0) = 0;%将Y、Cb、Cr分量化为8位无符号整数并存放在dst矩阵中dst(:,:,1) = uint8(y);dst(:,:,2) = uint8(Cb);dst(:,:,3) = uint8(Cr);subplot(142),imshow(dst),title('自编之rgb到YCBCR');YCBCR = rgb2ycbcr(src);subplot(143),imshow(YCBCR),title('matlab自带转换函数');%查找资料,得到反变换矩阵,并借此进行反变换r1=1.0*y + 0 +1.402*(Cr-128);g1=1.0*y - 0.34413*(Cb-128)-0.71414*(Cr-128);b1=1.0*y + 1.772*(Cb-128)+0;%对所得的各个分量进行调整,使之介于[0,255]区间内r1(r1 > 255) = 255;r1(r1 < 0) = 0;g1(g1 > 255) = 255;g1(g1 < 0) = 0;b1(b1 > 255) = 255;b1(b1 < 0) = 0;%将r1、g1、b1分量化为8位无符号整数并存放在dst2矩阵中dst2(:,:,1) = uint8(r1);dst2(:,:,2) = uint8(g1);dst2(:,:,3) = uint8(b1);subplot(144),imshow(dst2),title('反变换');%显示反变换图形5、RGB色彩模型和HSI色彩模型的互化变换公式:H= θB≤G360-θB>G;其中,θ= arccos 0.5∗[(R−G)+(R−B)][(R−G)+(R−B)(G−B)1/2][min(R,G,B)]S=1-3(R+G+B)I=1/3*(R+G+B);clear;clc;close;x=imread('1.jpg');rgb=im2double(x);r=rgb(:,:,1);g=rgb(:,:,2);b=rgb(:,:,3);%提取彩色图像R、G、B三个色彩通道的分量。

相关文档
最新文档