Pages

2010年1月4日 星期一

Motion Detection

  「Motion Detection」是第一次接觸電腦視覺時遇到的問題,這個算法試圖從連續影像中找出「移動物體」,處理上可以從相鄰影像、或者以一張背景影像為基礎,而我是採用前者,過程如下:(門檻值設為 20)


  接著就是如何從這張二值影像找出物體,這部分可以參考「Digital Image Processing 2/e」一書中的第 11 章:表示與描述,當中提到「Chain Code」與「Polygonal Approximation」,至於我實作的方法是「Connected Component」,非上述兩者...XD。

  最後一個要考量的議題是如何取捨這些移動物體,我的作法是傳入一個 function pointer 給 motion detector 物件來使用,這樣一來,就可以自行決定 filter condition,function pointer prototype 如下:
typedef bool (*filter)(int cond1, int cond2, int threshold1, int threshold2);

實作範例
bool MyFilter(int cond1, int cond2, int threshold1, int threshold2)
{
if(cond1 < (threshold1/16) || cond2 < (threshold2/16)) return true;
else return false;
}

程式碼下載

參考資料:


 
Blogger Templates