1. 程式人生 > >級聯分類器CascadeClassifier.detectMultiScale()

級聯分類器CascadeClassifier.detectMultiScale()

級聯分類器 分類器的工作原理: 一個分類器經過大量的正例和反例訓練。訓練後,可以應用到與訓練過程中大小相同的感興趣區域中使用。檢測過程中,產生一個搜尋框在圖片移動,經過每個位置並用分類器檢測。搜尋框的尺寸會在每一遍檢索完後改變。 支援的特徵Haar、LBP和HOG CascadeClassifier類: 1.級聯分類器的載入 CascadeClassifier::CascadeClassifier(const String& filename) 或 bool CascadeClassifier::load(const String& filename)

2.判斷是否為空 bool CascadeClassifier::empty() const

3.檢測物體,並返回矩形陣列 void CascadeClassifier::detectMultiScale(InputArray image, vector& objects, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size())

void CascadeClassifier::detectMultiScale(InputArray image, vector& objects, vector& numDetections, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size())

void CascadeClassifier::detectMultiScale(InputArray image, std::vector& objects, std::vector& rejectLevels, std::vector& levelWeights, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size(), bool outputRejectLevels=false )

引數介紹: 引數一:image:待檢測圖片,一般為灰度影象加快檢測速度 引數二:objects:矩形的向量,其中每個矩形包含檢測到的物件,矩形可能部分地在原始影象之外。 引數三:scaleFactor:表示在前後兩次相繼的掃描中,搜尋視窗的比例係數。預設為1.1,即每次搜尋視窗依次擴大10%; 引數四:minNeighbors:表示構成檢測目標的相鄰矩形的最小個數(預設為3個)。指定每個候選矩形有多少個鄰居需要保留它的引數。 如果組成檢測目標的小矩形的個數和小於 min_neighbors - 1 都會被排除。 如果min_neighbors 為 0, 則函式不做任何操作就返回所有的被檢候選矩形框,這種設定值一般用在使用者自定義對檢測結果的組合程式上。 引數五:flags: 相容老版本的一個引數,在3.0版本中沒用處。預設為0。

flags=0:可以取如下這些值: CASCADE_DO_CANNY_PRUNING=1, 利用canny邊緣檢測來排除一些邊緣很少或者很多的影象區域 CASCADE_SCALE_IMAGE=2, 正常比例檢測 CASCADE_FIND_BIGGEST_OBJECT=4, 只檢測最大的物體 CASCADE_DO_ROUGH_SEARCH=8 初略的檢測

引數六,七:minSize和maxSize是最小檢測視窗大小和最大檢測視窗大小。 minSize: 最小尺寸,檢測出的人臉最小尺寸 maxSize: 最大尺寸,檢測出的人臉最大尺寸