资源描述:
《数字视频处理实验2》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数字视频处理实验报告学院:通信与信息工程学院系班:电信科0901班姓名:学号:时间:2012年11月9日一、实验名称:YUV格式的数字视频的读取与格式转换二、实验目的:1、了解YUV格式的视频数据,编程读取YUV格式视频。2、了解并掌握RGB和YUV格式视频的转换基本原理,编程进行YUV格式和RGB格式视频转换。3、掌握四种视频亚采样格式。三、实验原理彩色视频传输模型主要有YUV、YIQ和YCbCr模型,其中Y分量均代表黑白亮度信息,其余分量代表彩色信息。YUV是被欧洲电视系统所采用的一种颜色编码方法,我国广播电视也普遍采用这类方
2、法。其中“Y”表示明亮度,也就是灰阶值;而和“V”表示的则是色度。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。YUV彩色模型与RGB工业彩色模型之间的转换关系如下:Y=0.299R+0.587G+0.114B;U=-0.147R・0.289G+0.436B;V=0.615R-0.515G-0.100B;RGB转化为YUV的公式如下:R=Y+1.14V;G=Y-0.39U-0.58V;B=Y+2.03U;在记录计算机图像时,常见的是采用RGB(红、绿、蓝)颜色分量
3、来保存颜色信息,一个像素24位,每8位保存一种颜色强度(0〜255)。四、实验程序1、读取YUV格式视频程序[fname^pname]=uigetfile(**.yuv;qcif1);%获得文件路径FileName=fullfile(pname,fname);%选择文件FileLength=length(FileName);%获取文件名长度%判断打开的是YUV格式视频还是QCIF格式图片,并设置相应的像素大小if(FileName(FileLength-2:l:FileLength)==,yuv,)wide=176*2;high=
4、144*2;endif(FileName(FileLength-3:l:FileLength)==,qcif)wide=176;high=144;endFile=fopen(FileName);%打开文件framenumber=input(,读取第几帧:*);%从第framenumber帧开始读取数据fseek(File,(framenumber-l)*high*wide*3/2/bof);%读取相应分量数据Y=double(fread(File,[wide9high],'iiint8'))';U二double(fread(Fil
5、e9[wide/2,high/2]/uint8'))';V=double(fread(File,[wide/2,high/2],iiiiit8'))';%显示YUV各图像分量figure(l);subplot(2,2,l)imshow(uint8(Y));titleCt^1num2str(framenumber),帧Y分量图,]);subplot(29292)imshow(uint8(U));title(['第FumZstx&amemimber),帧U分量图']);subplot(2,2,3)imshow(uint8(V));ti
6、tle(['第'num2str(framemimber),帧V分量图']);2、YUV格式与RGB格式视频相互转换程序[fname,pname]=uigetfile('*・yiiv;*・jqdf');%获得文件路径FileName=fullfile(pname,fname);%选择文件FileLength=length(FileName);%获取文件名长度%判断打开的是YUV格式视频还是QCIF格式图片,并设置相应的像素大小if(FileName(FileLength-2:l:FileLength)==,yuvl)wide=176
7、*2;high=144*2;endif(FileName(FileLength-3:l:FileLength)==,qcif)wide=176;high=144;endFile=fopen(FiIeName);%打开文件picture=zeros(1.5*high,wide);framenumber=input(,读取第几帧:');%从第framenumber帧开始读取数据fseek(File/framenumber-l)*high*wide*3/2/bof);%读取相应分量数据Y=double(fread(File,[wide,
8、high],,uint8,))*;U二double(fread(File9[wide/2,high/2],'uint8'))';V=double(fread(File,[wide/2,high/2]/uint8t))*;%将YUV三分量图像拼接成一