数字视频实验一、二.doc

数字视频实验一、二.doc

ID:58126506

大小:1.35 MB

页数:9页

时间:2020-04-24

数字视频实验一、二.doc_第1页
数字视频实验一、二.doc_第2页
数字视频实验一、二.doc_第3页
数字视频实验一、二.doc_第4页
数字视频实验一、二.doc_第5页
资源描述:

《数字视频实验一、二.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验一:读取YUV视频文件学时安排:2实验类别:课内实验 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的和任务熟悉MATLAB软件开发环境,了解YUV色彩模型,编写MATLAB程序读取YUV格式视频文件及各分量数据。二、实验原理利用MATLAB图像处理工具箱中的函数,在MATLAB编程环境下,实现YUV序列图像及各分量数据的读取。三、实验内容和步骤1. 运行MATLAB集成开发环境,编写MATLAB程序读取YUV视频文件,对YUV各分量进行提取、观察和比较。2. 编写RGB和YUV视频文件转换程序3. 课后撰写实验报告。(—)读取YUV格式视频并提取

2、分量1)读取YUV格式文件程序如下:%¶ÁÈ¡YUV¸ñʽÎļþÐÅÏ¢functionYUV_ReadShow(filename,frameNumMax,formatT)ifnargin==0frameNumMax=100;formatT='qcif';%yuv¸ñʽÎļþÀàÐÍfilename='C:DocumentsandSettingsAdministrator×ÀÃæakiyo_qcif.yuv';%'foreman.qcif';%YUV¸ñʽÎļþend%³õʼ»¯Ö¡¸ñʽswitchformatTcase'qcif'H=144;%¸ßW=1

3、76;%¿ícase'cif'H=288;%¸ßW=352;%¿íotherwiseH=480;%¸ßW=720;%¿íendforframeNum=1:frameNumMax;%¶ÁÈ¡YUV¸ñʽÎļþÄÚÈÝ[Y,U,V]=yuv_import(filename,[W,H],1,frameNum);tmp=Y{1};%ÏÔʾYUV¸ñʽµÄͼƬimg1=zeros(H+H/2,W);img1(1:H,:)=Y{1};img1(H+1:end,1:W/2)=V{1};img1(H+1:end,W/2+1:end)=U{1};subplot(121),imshow(u

4、int8(img1));pause(1/30);%ÔÝÍ£ÒÔÏÔʾÊÓƵ¶¯»end%YUV¸ñʽµÄͼƬװÔØfunction[Y,U,V]=yuv_import(filename,dims,numfrm,startfrm)fid=fopen(filename,'r');if(fid<0)error('Filedoesnotexist!');end;Yd=zeros(dims(1),dims(2));UVd=zeros(dims(1)/2,dims(2)/2);%UV·ÖÁ¿µÄλÖÃfrelem=numel(Yd)+2*numel(UVd);%ÊÓƵͼÏñÏ

5、ÔʾµÄ¿í¶Èif(nargin==4)%gotothestartingframefseek(fid,startfrm*frelem,0);end;Y=cell(1,numfrm);U=cell(1,numfrm);V=cell(1,numfrm);fori=1:numfrmYd=fread(fid,[dims(1)dims(2)],'uint8');Y{i}=Yd';%תÖÃUVd=fread(fid,[dims(1)/2dims(2)/2],'uint8');U{i}=UVd';UVd=fread(fid,[dims(1)/2dims(2)/2],'uint8');V{i

6、}=UVd';end;fclose(fid);结果如下:2)分量提取程序如下:%读取YUV格式视频程序functionyuv[fname,pname]=uigetfile('*.yuv;*.jqcif');%获得文件路径FileName=fullfile(pname,fname);%选择文件FileLength=length(FileName);%获取文件名长度%判断打开的是YUV格式视频还是QCIF格式图片,并设置相应的像素大小if(FileName(FileLength-2:1:FileLength)=='yuv')wide=176*2;high=144*2;endif(Fil

7、eName(FileLength-3:1:FileLength)=='qcif')wide=176;high=144;endFile=fopen(FileName);%打开文件framenumber=input('读取第几帧:');%从第framenumber帧开始读取数据fseek(File,(framenumber-1)*high*wide*3/2,'bof');%读取相应分量数据Y=double(fread(File,[wide,high],'uint8'))'

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。