資源簡介
幀差法 matlab7.1 視頻跟蹤 親測可運行,不能運行就是你matlab沒配置對
代碼片段和文件信息
mov=aviread(‘walk.avi‘);?%讀取avi視頻
fnum=size(mov2);%獲取圖像矩陣列數
aviobj?=?avifile(‘result.avi‘);?%創建名稱為result的avi文件
%幀間差分法
for?i=2:fnum-1
????x=mov(i-1).cdata;%mov包含兩個部分:視頻數據cdata和調色板colormap?
????y=mov(i).cdata;?%將i-1?i?i+1視頻數據分別賦給x?y?z
????z=mov(i+1).cdata;
????
????????xg=rgb2gray(x);%轉灰度圖像
????????xgm=medfilt2(xg);%medfilt2(Amn)?進行m*n中值濾波
????????yg=rgb2gray(y);
????????ygm=medfilt2(yg);
????????
????????zg=rgb2gray(z);
????????zgm=medfilt2(zg);
????????
????????%d1=ygm-xgm;
????????%d2=zgm-ygm;
????????
????????xgmd=im2double(xgm);%強制數據轉換為double(圖像默認是unit8或bool型)
????????ygmd=im2double(ygm);
????????zgmd=im2double(zgm);
???????
????????d1=ygmd-xgmd;%差分1
????????d2=zgmd-ygmd;%差分2
????????
????????t=20/256;?%閾值?除以256轉換為double
????????d1p=find(abs(d1)>=t);%通過find函數找到d1中灰度值>=t的像素坐標
????????d2p=find(abs(d2)>=t);
????????d1(d1p)=255;%d1二值化后灰度值為255的部分
????????d2(d2p)=255;
????????d1p=find(abs(d1) ????????d2p=find(abs(d2)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1480??2015-01-11?15:16??chafen.m
?????文件??????638976??2005-03-14?13:59??walk.avi
- 上一篇:MATLAB微積分實驗畫圖課件(ppt)
- 下一篇:用matlab模擬牛頓環試驗
評論
共有 條評論