資源簡介
利用MATLAB編寫的煙霧檢測程序,煙霧追蹤程序,畢業(yè)設(shè)計(jì)驗(yàn)證過,珍藏多年了

代碼片段和文件信息
tic;
clear?all;
close?all;
clc;
alpha?=?0.5;
v=3;
%?vid?=?videoinput(‘winvideo‘?1);%創(chuàng)建ID為1的攝像頭的視頻對象。
%?set(vid‘ReturnedColorSpace‘‘rgb‘);
%?vidRes=get(vid‘VideoResolution‘);
%?width=vidRes(1);
%?height=vidRes(2);
%?nBands=get(vid‘NumberOfBands‘);
%?figure(‘Name‘?‘Matlab調(diào)用攝像頭?By?tennfy‘?‘Numbertitle‘?‘Off‘?‘ToolBar‘?‘None‘?‘MenuBar‘?‘None‘);
%?hImage=image(zeros(vidRes(2)vidRes(1)nBands));
%?preview(vidhImage);????%打開視頻預(yù)覽窗口
%?filename?=?‘screen_video‘;%保存視頻的名字
%?nframe?=?150;????????????%視頻的幀數(shù)
%?nrate?=?30;??????????????%每秒的幀數(shù)
%?preview(vid);
%?set(1‘visible‘‘off‘);
%?
%?writerObj?=?VideoWriter(?[filename?‘.avi‘]?);
%?writerObj.frameRate?=?nrate;
%?open(writerObj);
%?
%?figure;
%?for?ii?=?1:?nframe
%?????frame?=?getsnapshot(vid);
%?????imshow(frame);
%?????f.cdata?=?frame;
%?????f.colormap?=?colormap([])?;
%?????writeVideo(writerObjf);
%?end
%?close(writerObj);
%?closepreview
A?=?aviinfo(‘screen_video.avi‘);
mov?=?mmreader(‘screen_video.avi‘);
LEN?=?A.Numframes;%得到視頻的幀數(shù)
for?i?=?1:v:?LEN
????b?=?read(mov?i);
????imwrite(b?strcat(‘smoke‘?int2str(i/v)?‘.jpg‘)?‘jpg‘);
end
pic?=?imread(strcat(‘smoke‘?int2str(i/v)?‘.jpg‘));%讀入一張圖片
[rowcolkkkk]?=?size(pic);
OrDiffPic?=?255*zeros(rowcol);
%Ncut?=20;
Ncut?=20;
Nrow?=?floor(row/Ncut);
Ncol?=?floor(col/Ncut);
%定義新的塊狀像素圖像
CubePic?=?255*zeros(NrowNcol);
DiffPic?=?255*zeros(NrowNcol);
BackPic?=?255*zeros(NrowNcol);
thres?=?10;
%TestPic?=?255*ones(rowcol);
flag?=?0;
counter?=?0;
for?x?=?1?:?(LEN/v)-1
????pic?=?imread(strcat(‘smoke‘?int2str(x)?‘.jpg‘));%讀入一張圖片
????pic1?=?rgb2gray(pic);
????%?imshow(pic1);
????%thres?=?mean(pic11);
????%塊狀像素點(diǎn)平均化
????for?i=1:Nrow
????????for?j?=?1:Ncol
????????????temp?=?pic1((i-1)*Ncut+1:i*Ncut(j-1)*Ncut+1:j*Ncut);
????????????CubePic(ij)?=?uint8(mean(temp(:)));
????????end
????end
????%imshow(uint8(CubePic));
????%背景減除
????if?x==1
????????BackPic?=?CubePic;
????else
????????DiffPic?=?uint8(CubePic)?-?uint8(BackPic);????%計(jì)算背景圖片
????????BackPic?=?uint8(uint8(alpha*CubePic)?+?uint8((1-alpha)*BackPic));
????end
????%imshow(uint8(DiffPic));
????for?i=1:Nrow
????????for?j?=?1:Ncol
????????????if?DiffPic(ij)>thres
????????????????DiffPic(ij)?=?255;
????????????else
????????????????DiffPic(ij)?=?0;
????????????end
????????end
????end
????%圖像還原成原始尺寸
????OrDiffPic?=?imresize(DiffPicNcut);
????imLabel=bwlabel(OrDiffPic8);
????im2double(OrDiffPic);
????
????stat?=?regionprops(imLabel‘Area‘);?%求各連通域的大小
????maxarea?=?[stat.Area];
????minlen?=?min(3length(maxarea));
????stats?=?regionprops(imLabel‘Area‘‘Centroid‘);
????
????rea?=?[stats.Area];
????
????Center?=?zeros(32);
????for?i?=?1:minlen
????????ConIndex?=?find(rea==maxarea(i));
????????Center(i:)?=?stats(ConIndex).Centroid;
????end
????
????if??x>2
????????for?i=1:3
????????????Y2?=?LASTCenter(i2);
????????????for?j=1:3
????????????????Y1?=?Center(j2);????????????????
???????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????4402??2018-05-22?19:17??FIG\perfect.m
?????目錄??????????0??2016-06-13?16:01??FIG
-----------?---------??----------?-----??----
?????????????????4402????????????????????2
- 上一篇:初始對準(zhǔn)程序
- 下一篇:無限大障板上的活塞輻射
評論
共有 條評論