码迷,mamicode.com
首页 > 编程语言 > 详细

如何使用MATLAB语言读写YUV文件

时间:2014-12-25 22:09:02      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:yuv   matlab   读写   

本文详细介绍了如何使用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文件

标签:yuv   matlab   读写   

原文地址:http://blog.csdn.net/frd2009041510/article/details/42154151

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!