資源簡介
該段mathlab程序代碼用于實現視場中運動目標的波門跟蹤,在視場中加入噪聲并進行濾波去噪。。將結果視頻輸出。

代碼片段和文件信息
clc;clear?;close?all;
image=imread(‘FORMOSAT2_1831.bmp‘);?%讀取圖像灰度
%?figure(1)
%?imshow(pixel);%原圖像顯示
%?title(‘顯示原圖像‘);
n=100;
view=zeros(600800n);
row=size(image1);??%圖像行
col=size(image2);??%圖像列
for?num=51:50+n
???CCD?=?zeros(600800);??????%定義CCD視場
???CCD(num:num+row-1num:num+col-1)?=?image;
???
???%加入隨機噪聲
%????CCD1=uint8(CCD);
%????noise?=?0.2.*?rand(size(CCD));
%????CCD?=?imadd(CCD1im2uint8(noise));
???CCD?=?CCD+2.5*randn(size(CCD));????%加隨機噪聲
???
???%進行中值濾波去噪聲
???M8=[1?1?1;1?0?1;1?1?1];
???M8=M8/8;
???CCD=filter2(M8CCD);??
???
???%進行質心計算
???M?=?0;????
???a?=?1:600;
???b?=?1:800;
???M?=??M+sum(sum(CCD));
???Mx?=?a*sum(CCD2);
???My?=?b*sum(CCD).‘;
???x?=?My/M;
???y?=?Mx/M;
???%畫出波門邊界??設波門大小為120*120??波門寬度為2個像素
???x1?=?floor(y-60);
???x2?=?ceil(y+60);
???y1?=?floor(x-60);
???y2?=?ceil(x+60);
???CCD?=?uint8(CCD);
???CCD(x1-2:x1????y1:y2)?=?255;
???CCD(x2:x2+2????y1:y2)?=?255;
???CCD(x1:x2??????y1-2:y1)?=?255;
???CCD(x1:x2??????y2:y2+2)?=?255;
???view(::num-50)?=?CCD;?
end
%用avi顯示
movie(1:n)?=?struct(‘cdata‘?[]?‘colormap‘?[]);
for?i?=?1:n
???imshow(view(::i));
???movie(i)?=?getframe(gcf);
end
movie2avi(movie?‘實驗視頻‘?‘compression‘?‘None‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????79158??2008-07-21?10:09??FORMOSAT2_1831.bmp
?????文件???????1313??2014-01-07?17:24??shiyan.m
-----------?---------??----------?-----??----
????????????????80471????????????????????2
評論
共有 條評論