資源簡介
基于MATLAB的運動目標檢測算法,背景差分法。其中包含已處理圖像和代碼,更改路徑后可以直接運行。也可以使用用自己的視頻文件,但是記得先把視頻文件處理成圖像序列。
代碼片段和文件信息
clear
clc
nStar?=?1;
nNUM?=?164;
Background?=?double(?rgb2gray(imread(?[?‘car?(‘int2str(nStar)‘).bmp‘])?));%第一幀當做初始背景
%?背景更新過程其中int2str將整型常量轉為字符串
for?k?=?nStar+1?:1:?nNUM
????CurrentImage?=double(rgb2gray(imread(?[?‘car?(‘int2str(k)‘).bmp‘]?)));?%?當前幀
????FormerImage?=double(rgb2gray(imread(?[?‘car?(‘int2str(k-1)‘).bmp‘]?)));?%?前一幀
????ID?=uint8(abs(?CurrentImage?-?FormerImage?));????%?幀間差分
????%??選擇閾值
????T=yuzhi(ID);?%迭代法計算二值化閾值,比較耗時
????BW?=?IMBIARIZE(IDT/255);
????%?更新背景
????alpha?=?0.1;?%背景更新的速度
????CurrentBack?=?Background.*BW?+?(?alpha.*?CurrentImage?+?(?1-alpha?).*?Background?).*(?1?-BW?);%前后兩幀有變化的區域不更新,無變化的區域更新到背景中去
????Background?=?CurrentBack;%背景更新完畢
????Cut=abs(CurrentImage-Background);%前景與背景差分
????Cut=uint8(Cut);
????Tcut=yuzhi(Cut);%迭代法計算二值化閾值,比較耗時
????BWCut=imbimarize(CutTcut/255);%差分后的圖像進行二值化
????SE=[1?1?1;1?1?1;1?1?1];%結構元素
????BWCutero=imerode(BWCutSE);%對二值圖像進行腐蝕,以消除微小變動的區域
????BWCuterodil?=?bwmorph(BWCutero‘dilate‘3);%膨脹
????figure(1)imshow(BWCuterodil)title(‘差分后的二值化圖像‘)
????figure(2)imshow(imread(?[?‘car?(‘int2str(k)‘).bmp‘]?))
????[Lnm]?=?bwlabel(BWCuterodil8);%找出圖像中的八連通區域,視為車輛所在的區域
????for?i?=?1:nm?
????????[rc]?=?find(L?==?i);?
????????left=?min(c);?
????????right=?max(c);?
????????top=?min(r);?
????????buttom=?max(r);?
????????width=right?-?left?+?1;?
????????height?=?buttom?-?top?+?1;
????????rectangle(‘Position‘[lefttopwidthheight]‘EdgeColor‘‘r‘);%對車輛用矩形標記
pause(0.01);
????end
end
%用來計算灰度圖像二值化時的閾值,采用迭代法
function?m=yuzhi(Imgray)
mingray=min(min(Imgray));
maxgray=max(max(Imgray));
m=double(mingray)/2+double(maxgray)/2;??%初始分割閾值
while?1
a=find(Imgray<=m);
A=sum(Imgray(a))/length(a);
b=find(Imgray>m);
B=sum(Imgray(b))/length(b);
n=(A+B)/2;
if?abs(m-n)<1
????break;
else
????m=n;
end
end
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????17316??2018-03-15?16:20??畢設\MATLAB運動目標檢測代碼.docx
?????文件???????2048??2018-04-10?09:03??畢設\Unti
????..A..H.???????162??2018-03-19?21:12??畢設\~$報告-電信1404傅瑾茹.doc
????.....H.????138240??2018-03-19?21:06??畢設\~WRL3779.tmp
?????文件?????556277??2018-04-01?16:38??畢設\基于DSP的運動目標檢測系統_高文剛.caj
?????文件?????274625??2018-03-19?22:04??畢設\基于Matlab實時運動目標跟蹤檢測系統.pdf
?????文件????1554370??2018-04-01?16:37??畢設\基于Matlab實時運動目標跟蹤檢測系統_汪惠蘭.caj
?????文件?????716800??2018-03-15?16:21??畢設\基于MATLAB的運動物體軌跡跟蹤--畢業論文.doc
?????文件????2894848??2018-03-15?16:19??畢設\基于matlab的運動目標檢測.doc
?????文件?????548739??2018-03-15?16:25??畢設\基于MATLAB的運動目標檢測和識別技術研究-郗華.pdf
?????文件?????213668??2018-04-01?16:37??畢設\基于MATLAB的運動行人檢測算法的研究_欒國慶.caj
?????文件????2076187??2018-04-01?16:38??畢設\基于混合高斯模型與五幀差分的運動目標檢測算法_李戰明.caj
?????文件????8304545??2018-04-01?16:37??畢設\基于視覺的運動目標檢測與跟蹤算法的研究與實現_李曉曉.caj
?????文件?????115200??2018-03-23?13:30??畢設\開題報告-電信1404傅瑾茹.doc
?????文件?????612352??2018-03-19?22:01??畢設\運動目標檢測.doc
?????文件?????330614??2018-04-01?16:37??畢設\運動目標檢測與跟蹤_魏洪峰.caj
?????文件????1588170??2018-04-01?16:37??畢設\運動目標檢測跟蹤技術研究及DSP實現_馬寧.caj
?????目錄??????????0??2018-04-10?09:26??畢設
-----------?---------??----------?-----??----
?????????????19944161????????????????????18
- 上一篇:matlab常用代碼大全科研神器
- 下一篇:HHT變換的三種方法+Matlab程序
評論
共有 條評論