版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三:色彩空间与视频数据的表达学生:张慧彬2013/7/23目录 TOC o 1-5 h z HYPERLINK l bookmark20 o Current Document 色彩空间的概念2YUV颜色空间2RGB颜色空间23. HSV颜色空间YUV420格式的数据采集后象素数据的分布形式像素的YUV分量提取4存储方式4编译和运行四个小程序程序YUV_DISP7程序YUVPLAY17 HYPERLINK l bookmark47 o Current Document 程序YUVTOY_U_V8程序YUWIEWEILSRCio10自己改做的界面简单程序10总结与心得色彩空间的概念色彩是人的眼
2、睛对于不同频率的光线的不同感受,色彩既是客观存在的(不同频率 的光)乂是主观感知的,有认识差异。所以人类对于色彩的认识经历了极为漫长的过程, 直到近代才逐步完善起来,但至今,人类仍不能说对色彩完全了解并准确表述了,许多 概念不是那么容易理解。“色彩空间” 一词源于西方的“Colorspace”,乂称作“色域”, 色彩学中,人们建立了多种色彩模型,以一维、二维、三维甚至四维空间坐标来表示某 一色彩,这种坐标系统所能定义的色彩范围即色彩空间。我们经常用到的色彩空间主要 有RGB/HSV/YUV等。以下是三种颜色空间的具体的介绍:YUV颜色空间在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD
3、(点耦合器件)摄像机, 它把摄得的彩色图像信号,经分色、分别放大校正得到RGB,再经过矩阵变换电路得到 亮度信号Y和两个色差信号R Y、B-Y,最后发送端将亮度和色差三个信号分别进行 编码,用同一信道发送出去。这就是我们常用的YUV色彩空间。采用YUV色彩空间的 重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V 分量,那么这样表示的图就是黑白灰度图。彩色电视采用YUV空间正是为了用亮度信号 Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色信号。根据美 国国家电视制式委员会,NTSC制式的标准,当白光的亮度用Y来表示时,它和红、绿、 蓝三色光的关系可
4、用如下式的方程描述:Y=0.3R+0.59G+0.11B这就是常用的亮度公式。 色差U、V是由B Y、R Y按不同比例压缩而成的。如果要由YUV空间转化成RGB空 间,只要进行相反的逆运算即可。与YUV色彩空间类似的还有Lab色彩空间,它也是用 亮度和色差来描述色彩分量,其中L为亮度、a和b分别为各色差分量。RGB颜色空间RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色 光栅图形的显示器都使用R、G、B数值来驱动R、G、B电子枪发射电子,并分别激发 荧光屏上的R、G、B三种颜色的荧光粉发出不同亮度的光线,并通过相加混合产生各种 颜色;扫描仪也是通过
5、吸收原稿经反射或透射而发送来的光线中的R、G、B成分,并用 它来表示原稿的颜色。RGB色彩空间称为与设备相关的色彩空间,因为不同的扫描仪扫描 同一幅图像,会得到不同色彩的图像数据;不同型号的显示器显示同一幅图像,也会有 不同的色彩显示结果。显示器和扫描仪使用的RGB空间与CIE1931RGB真实三原色表色 系统空间是不同的,后者是与设备无关的颜色空iXlo btw: Photoshop的色彩选取器(Color Picker)o可以显示HSB、RGB、LAB和CMYK色彩空间的每一种颜色的色彩值。3. HSV颜色空间HSV(hue,saturation,value)颜色空间的模型对应于圆柱坐标系
6、中的一个圆锥形子集, 圆锥的顶面对应于V=1.它包含RGB模型中的R=l, G=l, B=1三个面,所代表的颜色较 亮。色彩H由绕V轴的旋转角给定。红色对应于角度0 ,绿色对应于角度120 ,蓝 色对应于角度240。在HSV颜色模型中,每一种颜色和它的补色相差180 o饱和度 S取值从0到1,所以圆锥顶面的半径为1 HSV颜色模型所代表的颜色域是CIE色度图 的一个子集,这个模型中饱和度为百分之百的颜色,其纯度一般小于百分之百。在圆 锥的顶点(即原点)处,V=0,H和S无定义,代表黑色。圆锥的顶面中心处S=0, V=1,H 无定义,代表白色。从该点到原点代表亮度渐暗的灰色,即具有不同灰度的灰色
7、。对 于这些点,S=0,H的值无定义。可以说,HSV模型中的V轴对应于RGB颜色空间中的主 对角线。在圆锥顶面的圆周上的颜色,V=l, S=l,这种颜色是纯色。HSV模型对应于画 家配色的方法。画家用改变色浓和色深的方法从某种纯色获得不同色调的颜色,在一 种纯色中加入白色以改变色浓,加入黑色以改变色深,同时加入不同比例的白色,黑 色即可获得各种不同的色调。YUV420格式的数据采集后象素数据的分布形式YUV,分为三个分量,“Y表示明亮度(Luminance或Luma),也就是灰度值.;而 和V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度, 用于指定像素的
8、颜色。与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于 电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息 一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑 白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以 用YUV方式传送占用极少的频宽。YUV码流的存储格式其实与其采样的方式密切相关,主流的采样方式有三种, YUV4:4:4, YUV4:2:2, YUV4:2:0,关于其详细原理,可以通过网上其它文章了解,这里我想强调的是如何根据其采样格式来从码流中还原每个像素点的YUV值,因为只有正确 地
9、还原了每个像素点的YUV值,才能通过YUV与RGB的转换公式提取出每个像素点的RGB 值,然后显示出来。用三个图来直观地表示采集的方式吧,以黑点表示采样该像素点的Y分量,以空心 圆圈表示采用该像素点的UV分量。YUV4:4:4 象杯-IDYUV4:4:4 象杯-ID1.像素的YUV分量提取(D.YUV 4:4:4采样,每一个Y对应一组UV分量。.YUV 4:2:2采样,每两个Y共用一组UV分量。.YUV 4:2:0采样,每四个Y共用一组UV分量存储方式下面我用图的形式给出常见的YUV码流的存储方式,并在存储方式后面附有取样每 个像素点的YUV数据的方法,其中,Cb、Cr的含义等同于U、V。YU
10、VY 格式(属于 YUV422)start + 0:Y)CbooYqiCtooYO2CboiV03Croistart + 8:YoCbioYiGnoY,12CbnYuCrnstart + 16:YaoCb20Y2ICnoY,22Cb2iY,23Cmstart + 24:YMCbsoY项C130Y32CbxiY33CmYUYV为YUV422采样的存储格式中的一种,相邻的两个Y共用其相邻的两个Cb、Cr, 分析,对于像素点Y00、01而言,其Cb、Cr的值均为CbOO、CrOO,其他的像素点 的YUV取值依次类推。UYVY 格式(属于 YUV422)start + 0:Cbco丫顶CrooYoiC
11、boiYWCroiY(bstart + 8:CbioYjoCrioYjiCbnY2CmYFstart + 16:Cb20Y项CnoY,2ICb2iY曷C121Y*start +24:Cb约Y3。CnoY31CbsiYdCmY33UYVY格式也是YUV422采样的存储格式中的一种,只不过与YUYV不同的是UV的排 列顺序不一样而己,还原其每个像素点的YUV值的方法与上面一样。YUV422P (属于 YUV422)YUV422P也属于YUV422的一种,它是一种Plane模式,即平面模式,并不是将YUV 数据交错存储,而是先存放所有的Y分量,然后存储所有的U (Cb)分量,最后存储所 有的V (C
12、r)分量,如上图所示。其每一个像素点的YUV值提取方法也是遵循YUV422 格式的最基本提取方法,即两个Y共用一个UV。比如,对于像素点YOO、Y 01而言, 其Cb、Cr的值均为CbOO、CrOOoYV12, YU12 格式(属于 YUV420)YU12和YV12属于YUV420格式,也是一种Plane模式,将Y、U、V分量分别打包, 依次存储。其每一个像素点的YUV数据提取遵循YUV420格式的提取方式,即4个Y分 量共用一组UV。注意,上图中,Y00、Y01、Y10、Yll共用CrOO、CbOO,其他依次 类推。NV12、NV21 (属于 YUV420)NV12和NV21属于YUV420
13、格式,是一种two-plane模式,即Y和UV分为两个Plane, 但是UV(CbCr)为交错存储,而不是分为三个planeo其提取方式与上一种类似,即Y 00、 Y 01、Y 10、Y 11 共用 CrOO. CbOO例如:YUV420 planar 数据,以 720X488 大小图象 YUV420 planar 为例,其存储格式是:共大小为(72OX48OX31)字节,分为三个部分:Y,U和VY分量: (720X480)个字节U(Cb)分量:(720X4802)个字节V(Cr)分量:(720X4802)个字节三个部分内部均是行优先存储,三个部分之间是Y,U,V顺序存储。即YUV数据的072
14、0X480字节是Y分量值,720X480-720X480X5/4 字节是 U 分量720X480X5/4 720X480X3/2 字节是 V 分量。4 : 2: 2 和 4: 2: 0 转换:最简单的方式:YUV4:2:2 t YUV4:2:0 Y不变,将U和V信号值在行(垂直方向)在进行一次隔行 抽样。YUV4:2:0 - YUV4:2:2 Y不变,将U和V信号值的每一行分别拷贝一份形成连 续两行数据。在YUV420中,一个像素点对应一个Y, 一个4X4的小方块对应一个U和V。对于所 有YUV420图像,它们的Y值排列是完全相同的,因为只有Y的图像就是灰度图像。 YUV420sp与YUV42
15、0P的数据格式它们的UV排列在原理上是完全不同的。420p它是先把 U存放完后,再存放V,也就是说UV它们是连续的。而420sp它是UV、UV这样交替存 放的。(见下图)有了上面的理论,我就可以准确的计算出一个YUV420在内存中存放的 大小。width * hight =Y (总和)U=Y/4 V = Y / 4所以YUV420数据在内存 中的长度是width * hight *3/2,假设一个分辨率为8X4的YUV图像,它们的格式 如下图:YUV420sp格式如下图:Y尊Y2 -YS|Y4Y5YEY7-Y8Y霁Y1SY11Y12Y1家Y14Y15pY16Y17Y18Y19Y20Y21Y22
16、Y23.Y24Y25Y26Y27Y28Y29Y30Y32UkVI。U3qV3qU4p奸U5V5U6V6u理U8V8YUV420p数据格式如下图:Y尊Y2pY3)Y4Y6-Y”Y9qY1SYllY12Y13。Y14Y15eY16qY17Y18Y19Y20Y21Y22Y23Y24Y25Y26Y27Y28Y29Y30Y31Y32UU2U3qU4U5U6U7U8VI pV2V3V4V5V6V7g编译和运行四个小程序程序 yuv_disp由于是win8系统存在兼容性问题,本程序不能运行成功。只是在运行之后一块小 黑屏幕闪一下。不能出现预想的结果。程序 yuvplayl(1).仔细研究程序之后发现在yuv
17、playl.cpp中ptSource二f open之后缺文件的路径 3uv格式视频存放的位置),如下图:Regi s t erCl ss s QwndcL ass);hwad=Cr eateWi ndow (scAppKwne? srCapNwnc?VSJWRLAPPEDYIHDOW,CW_USEDEFAULT, CW.IEEDEFAULT,dwWidth.divHeight,HULL, NULL. hlnst.4xice? HULL);Sh今wW i ndow thwnl nCm dSh。/) ; / show ithe application maxr4 windowFILE * p tr
18、Sour ce=lIULL:p trS our c fop an (F : 岳保焙训 机器人 YUV my i 1 003. /uvlpCmdLiaa*/., rb, );if (p trS our ce! =NULL)for (int j=0: j NumberOfFramt: j+)tl=timeGetTime 0:/ start the timerra&d (FTComponont/ YSi ptrSourco) : / road Y conponantfread (FVComponent, 1/ USi ze? ptrSource) ; / read U conponentra&d (
19、FYComponont? 1? f/Si za? ptrSourco) : / road V conponant YUVPictureToDIB ();RECT UpdateArea=Oz 0. dwWidth, dwHeight:InvalidateRect (hwnd, feUpdateArea, FALSE);UpdateWindov(hwnd):tl += ms_per_rane;t2 = tl - timeGetTime 0:.然后在经过细微的调试之后运行成功如下图:yvvfAv/1 (Wi7)- Mcrcnoft Vnud Studio天二, ez , J. j N ,4.尊-j
20、B程序 yuvtoy_u_v(1).将程序三打开,运行之后看到一个黑框一闪而过,经过对程序的分析之后,才明 白这是对YUV格式的视频分解,接着便调试程序,在main.cpp中的/start the main loop 后面加start=l ;end=3;“如下图:i ( ! (y= (unsigned char(sizeof (-unsi gned chr )*FSIZE) ) | |! (u= (unsigned char *)mLLoc (sizeof (unsi gned char)*FSIZE/ur) I! (v= (unsigned char(sizeof (-unsi gjted
21、chr )*FSIZE/vr) )fprizttf (stderr? Can not allocate memory! ;exit (2);/ start the maizt loopstart=l:end=3 :for (i dx= str t: i dxeiid+l : i若要将此程序调通,可将unsignedchar *y, *u, *v;下面的内容改为注释的形 式,如下图:-uxtsi gifcc d cKoi-/ checking corrimaiid line pareters/i targe != 4J i/ fpr intf (stderr., 工iwalid number o
22、f parame ters! In);/ /fpy iTtt (ktUadz。: Ktri pyuv 七amplatq s:t Ai-t # qrtd淋 ortn:/ Eprizitf (stderr Usage: itameofthisfile jmvfilenajne startfile# endEile# ;/ exit(l);/Acl = e */ checking pareter s/*i ( (start=atoi (argy2) 0 ) fprintCstderr? Invalid start index %srT ar gv2 J ;exEL);if ( (end=atoi G
23、argv3) 0 | | end start) fpr i nt (s t der r/ InvJLid end index 篷 arg 3);exit (1):/*i f ( (ormat=atoi (argrv4) 3 ) fpr i nt (s t der r/ InvJLid format specification sXn ar 矽4):exitU); W/*/ allocate merriory(3).再在for (idx=start;idxend+l;idx+) (的下面标为注释如下图:for (idx=start; i dxend+l; idx+) / create YW fi
24、le/these three lines for test only/*pr mtf (start=%dii,/ start);priiitf (ind以二i 2);printf (“色nd二施dn, end):.在strcpy(filename,的后边加上要分解视频的路径如下图sprint (inde 海3d; i ix);strcpyCfilenGine,: 客假培训小机器人N实蛉二ZYUTAmyRl叫 八ar 故1):strcat (filename, Hmfex):street (fileninq, “、yuv);/ open the yuv filei f ( (yuv_ile=op
25、en (filename *rb)= NULL ) fprintf (stderr, Can not open YUV file %sn filengine):1/ create Y file name, open it, and vrite contentstrep/(filename.假培训 Z 机器人氏实验三 EUV1林 12 辨 argvlj:s trc a.t (fi Lenajhej,streat (f ilenajriG . y):i ( (y_file= fopen(filename Lb)= MULL ) fprintE (sIderCaxi not crpil Y ile
26、耘filename);以识;fwri te (void *)y, si zeof (unsi gned char,FSI2E, y_ile):/ create U file pame, 斗共,卯上义药“upntentStrcpy(fiLen 仲:K署幅培训队机器人Z实验三美m必仆盐多呀);streat (filenamG Txnfedhstreat (filename,.u):i ( (u_il= Eopen(filename wb)二二 NULL ) (fprintf (stderr, Can not open U file 咒filenajriG);球it3;/ create V file
27、 ruain, odh it. and wilt包 contentstrepy(filename,Ff 慑培抓机器入/实验三WUV扁亦口/ 辨就故材;street (fileiLun土 ixviexT;streetv);i f ( (v_file=fopen (fiLenam Vb) = HULL ) fprintf (stderr,. Cannot open V filefilename):球i t:.接下来直接运行可看到还是一个小黑屏闪了一下,然后去视频的路径看看,结果发现yuv格式的视频己被成功分解:计mt 新加卷(F:) 导例011 机器人实冬 VUV名稼myfile031 .u ,名稼myfile031 .u ,myfileODl.v .myfileOOl.y二 myfilc031.yuv,myfileQ32.u myfileQ32.v_, myfile032.y,myfileO92.yuv myfileQ33.u,myfileO33.v(G:) lJ myfileOD3.y_( m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 感恩父母老师同学主题班会课件
- 网络科技公司技术支持年度述职报告
- 档案管理信息化系统安全隐患排查整治方案
- 高层建筑高支模施工方案
- 小学食堂营养餐带量食谱
- 医疗器械测试题与答案
- 卫生院院长年度工作汇报材料
- 蛇咬伤的健康教育
- 消防安全管理单位应急救援预案
- 用电安全经验分享案例
- 2025中华护理学会团体标准-成人吞咽障碍患者口服给药护理
- JJF(吉)136-2024 医用硬性内窥镜校准规范
- 肢体被动活动技术
- 华师大版初中数学知识点梳理
- 人民军队优良传统附有答案
- 人教版高中物理必修二同步练习及答案
- GB/T 43632-2024供应链安全管理体系供应链韧性的开发要求及使用指南
- (4059题)2023年学习强国挑战赛答题题库附答案(最全版)
- 体育与健康六年级上期教案
- 首营企业、品种、客户审批表
- 软件公司绩效考核指标表
评论
0/150
提交评论