本文詳細介紹了如何使用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如何讀寫檔案
很多時候,使用matlab生成資料和處理是一種不錯的選擇,往往需要讀取指定路徑的檔案,有時候還需要遍歷檔案,或者將處理的資料儲存在指定路徑的檔案之中,那麼如何使用matlab來讀寫檔案呢?if exist d path dir mkdir d path endfid fopen path,r pro...
matlab 如何使用mex
matlab與c語言混合程式設計介面 matlab是一種解釋性語言,不需要編譯,除錯比較方便,但是缺點是速度慢。這一點在執行複雜的科學演算法的時候體現極為明顯。而c語言雖然相對比 較複雜,但是執行效率很高,matlab很多內建函式都是用c寫的。另外有時候很多演算法已經已c語言的形式寫好,於是我們會想...
MATLAB 中如何使用 help
help help namehelp 會在命令行列出所有的主要 help 主題。每乙個主題對應 matlab 搜尋路徑中乙個資料夾名稱。help name 顯示 指定 name 對應的功能文字,name 可以是函式,方法,類,工具箱或者變數。name可以是操作符,函式名,類,方法,包,工具箱資料夾,...