




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录摘要11 引言12 颜色空间概述22.1 RGB颜色空间22.2 YUV颜色空间23 YUV 420采样格式及其存储方式34 YUV 转换为RGB 以BMP位图文件保存34.1 YUV与RGB转换关系34.2 BMP图像保存45 结语6参考文献6附录7YUV文件转换为BMP文件xxx摘要本文首先对RGB、YUV颜色空间作了简要的介绍,介绍了 YUV 420采样格式及其存储方式。简述了YUV 与RGB 的关系, 并且给出了换算公式。最后对YUV文件进行RGB转换,以BMP位图格式把结果保存。关键词:颜色空间;BMP;YUV;RGB1 引言颜色是人的视觉系统对光谱中可见区域的感知效果。它仅存在于人的眼睛和大脑中。为了准确地描述颜色, 必须引入色彩空间的概念。正如几何上用坐标空间来描述坐标集合, 色彩空间用数学方式来描述颜色集合。常见的3 个基本色彩模型是RGB, CMYK 和YUV。RGB ( Red, Green, Blue) 是计算机中最常见的色彩空间。它通过红、绿、蓝3 基色的相加来产生其他的颜色。由于其设备的独立性, 它被广泛应用于计算机图形、成像系统和彩色电视之中。而CMYK ( Cyan, Magenta, Yellow, Black) 色彩空间,则是通过颜色相减来产生其他的颜色, 实现方便,它被广泛应用于印刷工业。而YUV 或YIQ 或YCb-Cr 色彩空间则描述灰度和色差的概念, 由于易于实现压缩, 方便传输和处理, 它被广泛应用于广播和电视系统。正是由于这一点, 它也被广泛应用于计算机视频和图像处理之中, 如JPEG 图像和MPEG 均使用YUV 作为存储像素的格式。在获得显示硬件支持的情况下, 使用YUV 还可以减少和消除色彩变换处理, 极大地加快图像的显示速度。2 颜色空间概述2.1 RGB颜色空间在色度学中,为了确切表示某一种彩色,采用亮度、色调和色饱和度三个基本参量。彩色视觉是人眼对这个三个参量的总体感觉1。亮度是光作用于人眼所引起的明亮程度的感觉。色调是反映了彩色的类别。也就是通常所说的红,绿,蓝等就指的是色调。色和度是指彩色光所呈现彩色的深浅程度。对于同一中颜色的彩色光,彩色越浓,色饱和度越高。 根据色度学的介绍,不同波长的单色光会引起不同的彩色感觉,但相同的彩色感觉却可以来源于不同的光谱成分组合。自然界中几乎所有的颜色都能用三种基本彩色混合配出,在彩色电视技术中选择红色、绿色、和蓝色作为三基色。其他的颜色都可以用红色、绿色和蓝色按照不同的比例混合而成。所选取的红色、绿色和蓝色三基色空间。简称为RGB颜色空间。2.2 YUV颜色空间YUV 是一种基本色彩空间, 被欧洲的电视系统所采用。它被PAL ( Phase Alternat ion Line) , NTSC(Nat ional Television System Committee) 和SECAM( Sequent iel Couleur Avec Memoire or Sequential Colorwith Memory) 用作复合色彩视频标准。其中Y 指颜色的明视度( Luminance) , 即亮度( Brightness) , 其实Y 就是图像的灰度值(Gray value) , 而U 和V 则是指色调( Chrominance) , 即描述图像色彩及饱和度的属性。黑白系统只使用Y 信息, 因为U 和V是附加上去的, 所以黑白系统仍能正常显示。3 YUV 420采样格式及其存储方式4 YUV 转换为RGB 以BMP位图文件保存4.1 YUV与RGB转换关系RGB 在计算机领域有着举足轻重的地位, 由于色彩显示器使用红、绿、蓝3 色来产生需要的颜色, 所以被广泛用于计算机图形和成像之中。然而, 在处理现实世界的图像时, RGB 并非很有效, 因为它对所有颜色都用等长像素点的R、G、B 3 色加以合成。这就使得每个像素在R、G、B 3 个成分上拥有相同的像素深度和显示分辨率。而且处理RGB 颜色空间的图像也不是最有效的。由于上述原因,很多地方采用YUV 颜色空间。可以说在计算机领域, YUV 颜色空间同样占据着重要地位。RGB 与YUV 之间可以相互转化。由RGB 转化的公式如下:Y =INT(16.5+(0.257R+0.504G+0.098B)Cb=INT(128.5+(-0.148R-0.291G+0.439B)Cr=INT(128.5+(0.439R-0.368G-0.071B)由上述公式可推导出YUV转换为RGB公式如下:R=1.1665*(Y-16.5)-0.0483*( Cb -128.5)+1.6455*( Cr -128.5)G=1.1665*(Y-16.5)-0.3922*( Cb -128.5)-0.8151*( Cr -128.5)B=1.1665*(Y-16.5)+2.0218*( Cb -128.5)-0.0013*( Cr -128.5)4.2 BMP图像保存数字图像在计算机中都是以文件的形式存储和记录的,一般的图像文件主要包含文件头、文件体、文件尾三部分。BMP图像文件格式是Miscrosoft公司为其Windows环境设置的标准图像文件格式。BMP图像文件主要由位图文件头、位图信息头、位图调色板和位图数据四部分组成,其数据结构定义如下:1. 位图文件头:typedef struct WORDbfType;DWORDbfSize; /文件大小 WORDbfReserved1; /保留字,不考虑 WORDbfReserved2; /保留字,同上 DWORDbfOffBits; /实际位图数据的偏移字节数,即前三个部分长度之和 HEAD;2. 位图信息头:typedef struct DWORD biSize; /指定此结构体的长度,为40 LONG biWidth; /位图宽 LONG biHeight; /位图高 WORD biPlanes; /平面数,为1 WORD biBitCount; /采用颜色位数,可以是1,2,4,8,16,24,新的可以是32 DWORD biCompression /压缩方式,可以是0,1,2,其中0表示不压缩 DWORD biSizeImage; /实际位图数据占用的字节数 LONG biXPelsPerMeter; /X方向分辨率 LONG biYPelsPerMeter; /Y方向分辨率 DWORD biClrUsed; /使用的颜色数,如果为0,则表示默认值(2颜色位数) DWORD biClrImportant; /重要颜色数,如果为0,则表示所有颜色都是重要的 INFO;3. 位图调色板:typedef struct BYTErgbBlue; /该颜色的蓝色分量 BYTErgbGreen; /该颜色的绿色分量 BYTErgbRed; /该颜色的红色分量 BYTErgbReserved; /保留值 RGBQUAD;BMP文件保存的详细实现详见附录。转换后BMP文件如下:bmp2.bmpbmp5.bmp5 结语这次课程设计实现了最基本的YUV文件转换为BMP文件,对YUV 420的采样格式及其存储有了进一步的认识,对多媒体信息处理有了进一步的了解,对以后的学习有一定的帮助。这次课程设计有很大的收获,在学习多媒体的道路上还要更加努力。参考文献1 卢官明,焦良葆. 多媒体信息处理技术M.人民邮电出版社,2011.2 R. C. Conzalez 编,阮秋琦等译. 数字图像处理M.电子工业出版社,2003.3 黎洪松. 数字视频处理M. 北京邮电大学出版社,2006.4 谭浩强.C语言程序设计M.清华大学出版社,20065 周长发. 精通Visual C+图像编程M.电子工业出版社,2000.附录附录清单:1. bmp.h2. cjw.cpp/bmp.h#include #include #define WIDTHBYTES(bits) (bits)+31)/32*4)typedef unsigned int DWORD;typedef unsigned char uchar;typedef unsigned char BYTE;typedef unsigned short WORD;typedef longLONG;#pragma pack(2) typedef struct WORDbfType;DWORDbfSize; /文件大小 WORDbfReserved1; /保留字,不考虑 WORDbfReserved2; /保留字gf ,同上 DWORDbfOffBits; /实际位图数据的偏移字节数,即前三个部分长度之和 HEAD; #pragma pack()#pragma pack(2) typedef struct DWORD biSize; /指定此结构体的长度,为40 LONG biWidth; /位图宽 LONG biHeight; /位图高 WORD biPlanes; /平面数,为1 WORD biBitCount; /采用颜色位数,可以是1,2,4,8,16,24,新的可以是32 DWORD biCompression; /压缩方式,可以是0,1,2,其中0表示不压缩 DWORD biSizeImage; /实际位图数据占用的字节数 LONG biXPelsPerMeter; /X方向分辨率 LONG biYPelsPerMeter; /Y方向分辨率 DWORD biClrUsed; /使用的颜色数,如果为0,则表示默认值(2颜色位数) DWORD biClrImportant; /重要颜色数,如果为0,则表示所有颜色都是重要的 INFO; #pragma pack()typedef struct BYTErgbBlue; /该颜色的蓝色分量 BYTErgbGreen; /该颜色的绿色分量 BYTErgbRed; /该颜色的红色分量 BYTErgbReserved; /保留值 RGBQUAD;int BMPwrite(const char*filename,uchar* buffer,int width,int height)int LineByte = WIDTHBYTES(width*24);uchar* image = (uchar*)malloc(height*LineByte);for(int i=0;iheight;i+)for(int j=0;j 8) & 0x000000ff; header4 = (uchar)(file_size 16) & 0x000000ff; header5 = (uchar)(file_size 24) & 0x000000ff; header18 = width & 0x000000ff; header19 = (width 8) &0x000000ff; header20 = (width 16) &0x000000ff; header21 = (width 24) &0x000000ff; header22 = height &0x000000ff; header23 = (height 8) &0x000000ff; header24 = (height 16) &0x000000ff; header25 = (height 24) &0x000000ff; FILE *fp; if (!(fp = fopen(filename, wb) return -1; fwrite(header, sizeof(unsigned char), 54, fp);fwrite(image, sizeof(unsigned char), LineByte*height, fp); fclose(fp);free(image);return 0;/cjw.cpp#include #include #include #include #include bmp.h #define WIDTH 176 #define HEIGHT 144/转换矩阵 double YuvToRgb33 = 1, 0, 1.4022, 1, -0.3456, -0.7145, 1, 1.771, 0;/转换函数 int Convert(char *file, int width, int height, int n) /变量声明 int temp = 0; int x = 0; int y = 0; int fReadSize = 0; int ImgSize = width*height; FILE *fp = NULL; unsigned char* yuv = NULL; unsigned char* cTemp6; char *BmpFileName=( char*)malloc(256*sizeof(char); /申请空间 int FrameSize = ImgSize + (ImgSize 1); /4:2:0 , 1.5倍长度 yuv = (unsigned char *)malloc(FrameSize*sizeof(uchar); /读取指定文件中的指定帧 if(fp = fopen(file, rb) = NULL) return 0; fseek(fp, FrameSize*(n-1), SEEK_CUR); /SEEK_CUR=1,对应当前位置 fReadSize = fread(yuv, 1, FrameSize, fp); if(fReadSize 2); /v分量地址 uchar *imgdata =( uchar *)malloc(height*width*3*sizeof(uchar); for(y=0; y height; y+) for(x=0; x width; x+) /r分量,根据公式转换 temp = cTemp0y*width+x + (cTemp2(y/2)*(width/2)+x/2-128) * YuvToRgb02; imgdatay*width*3+x*3 = temp255 ? 255 : temp); /条件判断,像素值应该在0-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省聊城市2024-2025学年一年级第二学期期末语文学业水平检测(含答案)
- 并行内存访问冲突消解-洞察及研究
- 公共政策执行监控-洞察及研究
- 部门内部安全培训课件
- 避孕节育科普知识课件
- 基于大数据的前列腺增生分型与电切镜参数动态匹配研究
- 基于AI的制板滚桶磨损状态多维度实时监测系统开发
- 合成路线的原子经济性优化与催化剂筛选机制
- 可降解反光胸背带的环境效益评估与成本控制平衡点
- 可回收热塑性材料在饰条应用中的性能-成本平衡点
- 某铁路站前工程安全生产管理办法
- 消防工程验收自评报告
- 无人机集群控制技术-深度研究
- 部编版小学道德与法治六年级上册配套表格式教案(全册)
- 商务星球版八年级地理上册4.1《因地制宜发展农业》听课评课记录
- 厨房6S管理培训
- 临床常用他评量表
- 2025学年度第一学期政史地教研组工作计划
- 马龙课件简短
- 2024-2025学年广东省清远市高三(上)质检数学试卷(一)(含答案)
- 2025年高考作文素材积累之刘擎《西方现代思想讲义》大纲梳理
评论
0/150
提交评论