首页 > 代码库 > 如何使用MATLAB语言读写YUV文件
如何使用MATLAB语言读写YUV文件
本文详细介绍了如何使用MATLAB进行读写YUV文件,并给出了详细的代码及其分析。
示例程序如下:
close all; clear; fid1=fopen('D:\HM-14.0-ROI\bin\vc10\Win32\Release\Result\背景建模Result\hall_cif_352x288_300\QP=22\bgf_rec.yuv','rb'); fid2=fopen('D:\HM-14.0-ROI\bin\vc10\Win32\Release\Result\背景建模Result\hall_cif_352x288_300\QP=22\cal_rec.yuv','rb'); outfid=fopen('D:\HM-14.0-ROI\bin\vc10\Win32\Release\Result\背景建模Result\hall_cif_352x288_300\QP=22\com_rec.yuv','wb'); %fseek(fid,352*288*1.5*10,'bof'); fseek(fid1,0,'bof'); fseek(fid2,0,'bof'); Y_bgf=fread(fid1,[352,288],'uint8'); for j=1:300 Y_cal=fread(fid2,[352,288],'uint8'); Cb_cal=fread(fid2,[352/2,288/2],'uint8'); Cr_cal=fread(fid2,[352/2,288/2],'uint8'); for x=1:352 for y=1:288 if Y_cal(x,y)<5 Y_cal(x,y)=Y_bgf(x,y); end; end; end; fwrite(outfid,Y_cal,'uint8'); fwrite(outfid,Cb_cal,'uint8'); fwrite(outfid,Cr_cal,'uint8'); end; fclose(fid1); fclose(fid2); fclose(outfid);
下图是背景建模得到的背景:
下图是差分计算得到的差分图:
下图采用上面代码得到的合成图:
最后给出原图如下:
从实验结果可以看出,合成图与原图在主观上基本没有差别。
如何使用MATLAB语言读写YUV文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。