OpenCV結合V4l2實現人臉檢測以及人臉識別

2021-07-26 03:55:34 字數 988 閱讀 1512

該demo的基礎是之前的opencv人臉檢測以及v4l2攝像頭驅動程式,在此基礎上新增人臉識別功能,由於需要鑑別特定人臉,因此需要進行訓練生成xml格式的級聯分類器,然後載入此分類器即可實現特定人臉的識別。

說明

本demo使用的是基於lbph的facerecongnizer,思路為首先構造lbphfacerecognizer,然後進行訓練並將訓練結果儲存以便下次使用,最後傳入影象進行鑑別,每張會對應乙個label,如果鑑別結果與某張吻合,就會返回該的下標,通過下標與label陣列即可確定識別結果,思路清晰,不過這種鑑別演算法已經是上古時代的了,以後打算使用神經網路實現人臉識別。

**

#include "facerecognize.h"

facerecognize::facerecognize()

void facerecognize::loadlbphstate()

void facerecognize::train()

void facerecognize::printdir(const

char *dir, int depth)

chdir(dir);

while((entry = readdir(dp)) != null)

else

}chdir("..");

closedir(dp);

}void facerecognize::getfilesname(string path)//獲取path目錄中的所有作為訓練資源

return frame;

}vector

facerecognize::facedetector(mat img)

return faces;

}void facerecognize::drawface(mat img, vector

faces)

}

OpenCV結合V4l2實現人臉檢測

之前簡答得實現了一下人臉檢測,不過使用的opencv自帶的攝像頭操作函式,然而那個並不能使用在嵌入式裝置上,為了通用性,我將讓opencv使用v4l2獲得的資料幀進行檢測。說明 v4l2其實並不難,只不過大家容易被網上那動輒幾百行的 唬住,那些 大多都是在檢錯,因為操作硬體這種事情出錯的概率確實很高...

V4L2程式設計

include include include include include include include include include include typedef struct buftype buftype user buf int n buffer 0 開啟攝像頭裝置 int ope...

V4L2 程式設計

v4l2程式設計 1.定義 2.工作流程 開啟裝置 檢查和設定裝置屬性 設定幀格式 設定一種輸入輸出方法 緩衝區管理 迴圈獲取資料 關閉裝置。3.裝置的開啟和關閉 include int open const char device name,int flags include int close ...