logo资料库

matlab读取YUV视频(程序自己跑过,能运行).doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
close all; clear fid = fopen('D:\Image-Sequence\akiyo_cif.yuv','r') row=176*2;col=144*2; frames=8; % total=300 for frame=1:frames Y=zeros(row,col,frames); U=zeros(row/2,col/2,frames); V=zeros(row/2,col/2,frames); UU=zeros(row,col,frames); VV=zeros(row,col,frames); [Y(:,:,frame),count] = fread(fid,[row,col],'uchar'); [U(:,:,frame),count1]=fread(fid,[row/2,col/2],'uchar'); [V(:,:,frame),count2]=fread(fid,[row/2,col/2],'uchar'); %fclose(fid) %figure,imshow(Y); UU(1:2:row-1,1:2:col-1,frame)=U(:,:,frame); UU(1:2:row-1,2:2:col,frame)=U(:,:,frame); UU(2:2:row,1:2:col-1,frame)=U(:,:,frame);
UU(2:2:row,2:2:col,frame)=U(:,:,frame); VV(1:2:row-1,1:2:col-1,frame)=V(:,:,frame); VV(1:2:row-1,2:2:col,frame)=V(:,:,frame); VV(2:2:row,1:2:col-1,frame)=V(:,:,frame); VV(2:2:row,2:2:col,frame)=V(:,:,frame); R = Y + 1.140 * (VV-128 ); G = Y + 0.395 * (UU-128 ) - 0.581 *(VV-128); B = Y + 2.032 *(UU-128); for i=1:row for j=1:col if R(i,j,frame)<0 R(i,j,frame)=0; end if R(i,j,frame)>255 R(i,j,frame)=255; end if G(i,j,frame)<0 G(i,j,frame)=0; end
if G(i,j,frame)>255 G(i,j,frame)=255; end if B(i,j,frame)<0 B(i,j,frame)=0; end if B(i,j,frame)>255 B(i,j,frame)=255; end end end R=R/255;G=G/255;B=B/255; %X=[R',G',B']; %figure,imshow(R(:,:,frame)',G(:,:,frame)',B(:,:,frame)'); figure,imshow(R(:,:,frame)'); %M(frame) =im2frame(X,map); end %movie(M,10,30)
分享到:
收藏