qt和
opencv
的攝像頭(本地)讀取並輸出程式
#include "detectanddisplay.h"
void detectanddisplay( mat &frame)
std::vecto***ces;//用於儲存檢測結果的向量
mat frame_gray;
cvtcolor( frame, frame_gray, cv_bgr2gray );//轉換成灰度圖
equalizehist( frame_gray, frame_gray );//直方圖均值化
face_cascade.detectmultiscale( frame_gray, faces, 1.1, 2, 0|cv_haar_scale_image, size(30, 30) );//用於檢測人眼的函式
//畫方框
for( int i = 0; i < faces.size(); i++ )
//imshow( window_name, frame );
}
函式首先使用cascadeclassifier類建立乙個分類器,然後匯入opencv已經訓練好的資料樣本進行分類,並將結果存入vector
faces向量中。需要注意的是,"haarcascade_mcs_eyepair_big.xml"檔案在opencv中的路徑為\opencv\sources\data\haarcascades,執行時需要將該檔案放到該項目的debug資料夾中。opencv自帶了多種已經訓練好的人臉特徵資料,可以選擇自己需要的檔案進行替換,如圖一。本文選擇的分類器是人眼雙目檢測分類器。
關於face_cascade.detectmultiscale的引數,如下所示
對不同大小的輸入影象進行物體識別,並返回乙個識別到的物體的矩陣列表。
c++:
void
cascadeclassifier::
detectmultiscale
(constmat&image, vector&objects,doublescalefactor=1.1,intminneighbors=3, intflags=0,sizeminsize=size(), sizemaxsize=size())
引數
·image– 需要檢測的 cv_8u 輸入矩陣。
·objects– 輸出vector載體容器用於儲存被識別的物體矩陣。
·scalefactor– 指定每張的縮小比例的引數。
·minneighbors– 指定每個候選矩陣至少包含的鄰近元素個數。
·flags– 與舊版級聯分類器模型函式cvhaardetectobjects的flags相同. 此引數不被用於新版模型。
·minsize– 最小可能的物件的大小,小於的物件將被忽略。
·maxsize– 最大可能的物件的大小,大於的物件將被忽略。
該函式必須對灰度影象進行處理,關於灰度轉換函式和直方圖灰度化函式,可以在網上找到大量資料,這裡就不詳細介紹了。
最終的實際檢測結果如圖二。
圖二
基於opencv的人臉識別
1前言參考的是 這篇用的是dlib的對齊還加了mask。本文方法 人臉檢測 shiqiyu libfacedetection opencv提取ptr類 2 facedetect.h include include include include include facedetect dll.h us...
基於Opencv的人臉識別
要進行人臉的識別的訓練,首先我們要對openv中人臉識別類facerecognizer要有乙個了解,可以參考這個部落格對facerecognizer 有乙個了解 這個部落格對人臉的訓練解釋的很好,具體怎麼訓練可以閱讀這個部落格。關於人臉識別 我們有一下兩個步驟 1.利用pca變換的人臉識別,對人臉進...
基於Opencv的人臉識別
當在閱讀書籍opencv3時,偶遇人臉識別這一概念,通過網上查閱得知人臉識別是生物特徵識別的最新應用。在此書籍引導下,寫了乙個最基本的人臉識別 期間有乙個問題需要注意,再往工程目錄匯入xml檔案是注意不要導錯,應該是這兩個haarcascade frontalface alt.xml和haarcas...