資源簡介
通過MATLAB創(chuàng)建系統(tǒng)對象,用于讀入待處理視頻,用于色彩空間轉(zhuǎn)換、檢測出包含汽車運動的圖像塊、用高斯混合模型檢測背景、對檢測出的運動車輛進行框畫、標(biāo)注檢測到車輛的個數(shù)用于顯示結(jié)果。目標(biāo)跟蹤方法對車輛進行定位,確定了車輛的位置后, 就可以根據(jù)位置信息進一步獲取車輛的顏色信息。

代碼片段和文件信息
clear;close?all;
SE?=?strel(‘rectangle‘[10?10]);?%注意:結(jié)構(gòu)元素必須具有適當(dāng)?shù)拇笮?br/>BW1=imread(‘test5.jpg‘);
subplot(221);imshow(BW1);title(‘原圖‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%添加
GRAY=rgb2gray(BW1);?%灰度圖像
h=fspecial(‘a(chǎn)verage‘9);
GRAY=uint8(round(filter2(hGRAY)));?%進行均值濾波
subplot(222);imshow(GRAY);title(‘均值濾波‘);
GRAY?=?imcrop(GRAY[10?20?542?355]);???%裁剪
GRAY=double(GRAY);?%轉(zhuǎn)換為double類型
[GxGy]=gradient(GRAY);?%?計算梯度
G=sqrt(Gx.*Gx+Gy.*Gy);?%?水平垂直差分
J=GRAY;?
K=find(G<2);?%指定灰度級
J(K)=0;
subplot(223);imshow(J);title(‘銳化‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BW2=imdilate(JSE);%膨脹
BW3?=?imfill(BW2‘holes‘);?%填充
BW4=imerode(BW3SE);%腐蝕
I=im2bw(BW4);
subplot(224);imshow(I);title(‘目標(biāo)塊‘);
%====形態(tài)特征值計算===%
A=bwarea(I);?%?計算目標(biāo)的面積
I1=edge(I‘canny‘0.7);
[L?num]=bwlabel(I18);%存放提取的目標(biāo)矩陣和數(shù)目
STATS?=?regionprops(L‘BoundingBox‘);
%?存放經(jīng)過篩選以后得到的所有矩形塊??
n?=?1;?
wh=zeros(1num);?
for?i=1:num
????box?=?STATS(i).BoundingBox;??%圖像的長寬
????x?=?box(1);????%矩形坐標(biāo)x??
????y?=?box(2);????%矩形坐標(biāo)y??
????w?=?box(3);????%矩形寬度w??
????h?=?box(4);????%矩形高度h?
????wh(1i)=w*h;
????ux?=?ceil(x);??%取整
????uy?=?ceil(y);??
????if?ux?>?1??
?????????ux?=?ux?-?1;??
?????end??
?????if?uy?>?1??
?????????uy?=?uy?-?1;??
?????end??
?????%result(n:)?=?[ux?uy?w?h];
?????????R=zeros(hw);
?????????G=zeros(hw);
?????????B=zeros(hw);
????????for?j=1:w
????????????for?ii=1:h
????????????????R(iij)=BW1(ii+uy-1j+ux-11);
????????????????G(iij)=BW1(ii+uy-1j+ux-12);
????????????????B(iij)=BW1(ii+uy-1j+ux-13);
????????????end
????????end
???????%?r(1n)=mean(mean(R))
???????%?g(1n)=mean(mean(G))
???????%?b(1n)=mean(mean(B))
???????%?n?=?n+1;
????????r(1i)=mean(mean(R));
????????g(1i)=mean(mean(G));
????????b(1i)=mean(mean(B));
????????if(r(1i)>130&&g(1i)<130&&b(1i)<130)
????????????disp(‘檢測出車輛是紅色‘)
????????elseif(r(1i)<130&&g(1i)>130&&b(1i)<130)
????????????disp(‘檢測出車輛是綠色‘)
????????elseif(r(1i)<130&&g(1i)<130&&b(1i)>130)
????????????disp(‘檢測出車輛是藍(lán)色‘)
????????elseif(r(1i)<80&&g(1i)<80&&b(1i)<80)
????????????disp(‘檢測出車輛是黑色‘)
????????elseif(r(1i)>170&&g(1i)>170&&b(1i)>170)
????????????disp(‘檢測出車輛是白色‘)
????????else
????????????disp(‘檢測出車輛是其他色‘)
????????end
end
status_orig?=?regionprops(L?‘basic‘);%?判斷目標(biāo)個數(shù)
allArea=[status_orig.Area];
disp(‘檢測出車輛數(shù)目是‘);disp(num);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2529??2015-05-18?11:34??matlab\cunt.m
?????文件????????2896??2015-05-18?10:41??matlab\example6.m
?????文件???????87703??2011-05-29?18:31??matlab\test5.JPG
?????文件??????208896??2005-04-04?13:17??matlab\viptraffic.avi
?????目錄???????????0??2015-05-18?11:43??matlab\
評論
共有 條評論