接著就是如何從這張二值影像找出物體,這部分可以參考「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;
}
程式碼下載
參考資料: