那麼,如果你想忽略人的對象,你應該首先知道哪些對象是人,哪些不是人。
通常要找到圖像(或視頻流)中的人,您使用的是人物探測器。你可以用HogDescriptor
HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
申請的人檢測HOG描述符的例子做可以在opencv_source_code /樣品/ CPP/peopledetect.cpp
一個GPU例如在申請人們HOG描述符中找到檢測可以在opencv_source_code/samples/gpu/hog.cpp找到
然後,您可以檢查您的移動對象是否爲人,並決定是否忽略它們。
既然你要跟蹤的汽車,更簡單的方法是基於以下考慮:一個人是比汽車,或者(參照它們的邊框)一個人平時的高度大於小寬度(通常是一個人站立或行走),換一輛車的方式是。你可以應用簡單的幾何約束來忽略應該是一個人。
您可以根據相機的分辨率和視圖設置人物邊界框的最大面積。我們稱這個面積值爲maxAreaPerson
然後,對於每個移動對象,您將獲得邊界框(您可能已經這樣做了,或者只是使用boundingRect(...)
)。如果框區域小於maxAreaPerson
,則忽略它。
除了定義最大面積,您可以定義最大寬度,高度,高寬比或它們的組合。
如果遠離相機,您的物體可能會更小。長寬比將是有用的,因爲它不受物體相對於相機的距離的影響。或者,您可以在視圖中定義幾個區域(例如,靠近相機,遠離相機,離相機很遠),併爲每個區域定義約束。
謝謝多數民衆贊成在幫助:)) –