2011-06-25 18 views
2

私は "車の追跡"に関するプロジェクトを行っています。リアルタイムで実行されるコードを開発しようとしており、ジャンクションに近づいている車を検出できるようになります。 Ιは連続した2つのフレームを減算し、次にthresholding.Implementの形態学的閉鎖を行い、移動する車を見つける。私の問題は、暗い車を検出できないことです。このプロジェクトを正常に完了するためのガイドラインを教えていただければ幸いです。移動する車の検出と追跡

%Code for tracking 
vid = videoinput('winvideo', '1', 'RGB24_640x360'); 
set(vid,'ReturnedColorSpace','rgb'); 
set(vid,'TriggerRepeat',Inf); 
src = getselectedsource(vid); 
src.FocusMode = 'manual'; 
%pause(0.02); 
[i rect]=imcrop(getsnapshot(vid)); 
set(vid,'ROIPosition',rect); 

h = fspecial('gaussian',[3,3],5); 
%structial element 

se90 = strel('line',5, 90); 
se0 = strel('line', 5, 0); 
ss=strel('diamond',10); 
var=3; 
start(vid); 

for i=1:500 
    tic 
    im1= getsnapshot(vid); 
    imrgb=im1; 
    im1=im1(:,:,1); 
    if var==3 

    im2= getsnapshot(vid); 
    im2=im2(:,:,1); 
    im2=imfilter(im2,h); 
    var=0; 
    end 
    %------------------------------------------------- 

     if 1 
     m1=imfilter(im1,h); 

    % c2=im2-im1 

    %cbw=im2bw(c2); 
    %allagi stin evais8isia tou threshold 
    cbw=imsub(im1,im2,14,h); 


    end 
    cbw1 = imerode(cbw, [se90,se0]); %sistoli 
    % cbw1 = imerode(cbw1, [se901,se01]); 
    %diastoli 
    cbw1= imdilate(cbw1,ss); 
    %fill holes 
    cbw2= imfill(cbw1, 'holes'); 
    cbw2= imfill(cbw2, 'holes'); 
    if 1 
    cbw3 = imerode(cbw2, [se90 se0]); %sistoli 
    cbw3 = imerode(cbw3, [se90 se0]); %sistoli 
    cbw3 = imerode(cbw3, [se90 se0]); %sistoli 
    cbw3 = imerode(cbw3, [se90 se0]); 
    cbw3= imfill(cbw3, 'holes'); %fill hole 
    end 

    if 1 
    %Boundary box 
    s = regionprops(cbw3, 'BoundingBox'); 
    if ~isempty(s) 
    cd = s.BoundingBox; 
    end 
    figure(1), 
    %imshow(cbw3); 
    imshow(imrgb) 
    hold on; 
    if ~isempty(s) 
    rectangle('Position',[cd(:,1) cd(:,2) cd(:,3) cd(:,4)],'LineWidth',2,'EdgeColor','b'); 
    end 
    hold('off'); 
    end 
    %empty ram 
    flushdata(vid) 
    var=var+1; 
    toc 
end 
stop(vid) 
+3

単純な閾値処理およびいくつかの形態学的演算は、通常、最良の条件以外のすべてにおいて良好な結果を提供するには不十分である。より信頼性の高い結果を得るには、より高度なコンピュータビジョンツールが必要です。トピック「セグメント化」でいくつかの調査を行い、問題の解決方法を選択することをお勧めします。 – vsz

+0

Aはvszに同意します。しかし、これをダークカーセグメンテーションに適用したい場合は、イメージを無効にして同じアプローチを実行するのはどうですか? – petrichor

+1

@petrichor私は、暗い車が道路に色が似ているという事実に起因すると思います。否定することは、その場合の問題を解決しません。そうでなければ、私もvszに同意します。 –

答えて

関連する問題