幀差法識別物體_matlab

來源:互聯網
上載者:User

現在又到了本科生畢業的時候,很多同學都在寫畢設了。想想去年幫我的女神做了

個物體識別,雖然沒用上,不過我覺得挺有意思的,放在硬碟裡睡覺也無啥價值,就發

表在這裡給學弟學妹們做做參考。

女神的畢設是城市交通管理,說白了就是設計一個交通燈,我覺得這有點侮辱我們

本科生智商,就自以為聰明的想做個道路車輛識別,通過網路攝影機得到當前道路的車輛數

量,然後再做別的處理。說白了就是數位影像處理。正好當時我們剛上完數位影像處理

這門課。就查點資料做做。

看看資料,要識別道路上的車輛,最簡單的方法就是用幀差法, 拿有物體的圖片減

去無物體的圖片,判斷有個變化就知道了。想想確實容易。先類比下,用相機拍了兩張

圖片,一個有物體,一個無物體,由於是幀差法,背景就無所謂了。

先是拍的兩張圖,注意拍的角度要一致。

無物體的圖片。


有物體的圖片


程式的目的就是識別出中間的百雀羚。

當然,首先轉為灰階圖片,在做差,取絕對值,舍掉差值小的地區,再膨脹腐蝕處理。就可以

得到只包含物體的圖了,得到它的長寬,標記處理,OK!

代碼如下,其實很短,更多的是顯示上了。


clear   %   清空工作空間% clc   %   清屏tic;    %   開始計時wuc=imread('dscf0400.jpg'); %   讀取無物體彩色圖片wu=rgb2gray(wuc);           %   轉換為灰階圖片youc=imread('dscf0401.jpg');%   讀取有物體彩色圖片you=rgb2gray(youc);         %   轉換為灰階圖片%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   類型轉換,求差值wu=double(wu)/255;you=double(you)/255;d(:,:)=abs(you(:,:)-wu(:,:));% d=imabsdiff(you,wu);% d=double(d);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   二值化處理bw1=im2bw(d,0.2);%   膨脹腐蝕運算元,相當於閉操作se = strel('disk',3);bw=imerode(bw1,se);bw=imdilate(bw,se);%   `尋找聯通地區[bwl,ln]=bwlabel(bw,4);% disp(ln); %   顯示聯通地區個數%   尋找最大聯通地區bwl_index=0;bwl_big=0;for m=1:ln    tmp=sum(sum(bwl==m));    if(tmp>bwl_big)        bwl_big=tmp;        bwl_index=m;    endend%   取最大聯通地區obj=(bwl==bwl_index);[c,r]=find(obj==1);xbegin=min(r);ybegin=min(c);xlength=max(r)-xbegin;ylength=max(c)-ybegin;%   繪圖im1=wuc;        lab1='原圖';im2=youc;       lab2='放入物品';%   對比增強後顯示im3=imadjust(d,[0,0.2],[0,1]);lab3='圖片差';im4=bw1;        lab4='閾值處理';im5=bw;         lab5='閉操作';im6=obj;        lab6='識別';subplot(231);imshow(im1);title(lab1);subplot(232);imshow(im2);title(lab2);subplot(233);imshow(im3);title(lab3);subplot(234);imshow(im4);title(lab4);subplot(235);imshow(im5);title(lab5);subplot(236);imshow(im6);title(lab6);%   標記物品subplot(232);hold onplot(xbegin+xlength/2,ybegin+ylength/2,'*r');rectangle('Position',[xbegin,ybegin,xlength,ylength],'EdgeColor','g');hold offt=toc;  %   計時結束fprintf('耗時:%g',t);

運行出的結果如。也可以自己重新拍照片,放進去,做自己的處理。我當時又做了網路攝影機的即時處理,等我的下篇部落格。


圖中第二張,一個綠色的矩形框就是識別出的物體位置及大小了。程式參考了各個地方的,只知其然不知其所以然。讓大方之家見笑了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.