基於opencv的人臉識別

2021-08-09 06:34:01 字數 1644 閱讀 3222

1前言參考的是》 這篇用的是dlib的對齊還加了mask。

本文方法:人臉檢測( shiqiyu/libfacedetection)+opencv提取ptr類

2**

facedetect.h

#include 

#include

#include

#include

#include "facedetect-dll.h"

using

namespace cv;

using

namespace

std;

ptrgettrainmodel(string fn_csv);

mat facedetect(mat& frame);

facedetect.cpp

#include "facedetect.h"

void read_csv(const

string& filename, cv::vector

& images, cv::vector

& labels, char separator = ';')

string line, path, classlabel;

while (getline(file, line))

}}cv::mat facetoone(cv::mat source)//歸一化處理函式

mat facedetect(mat& frame)//臉是否存在

}if (0 != maxrect.area())

else

return error;

}ptrgettrainmodel(string fn_csv)//輸入csv檔案的路徑名

catch (cv::exception& e)

// 如果沒有讀取到足夠,我們也得退出.

if (images.size() <= 1)

ptrmodel = createlbphfacerecognizer();//建立人臉識別類 可修改 lbphface、eigenface、fishe***ce

model->train(images, labels);

return model;

}

main.cpp

#include "facedetect.h"

const

int namenumber = 4;//測試的人臉數量

const

string textname[namenumber] = ;//做乙個儲存人臉名字的陣列

int main()

mat frame, gray;

while (true)

imshow("face recogniton", frame);

waitkey(1);

}else}}

3實驗效果

完整專案

基於Opencv的人臉識別

要進行人臉的識別的訓練,首先我們要對openv中人臉識別類facerecognizer要有乙個了解,可以參考這個部落格對facerecognizer 有乙個了解 這個部落格對人臉的訓練解釋的很好,具體怎麼訓練可以閱讀這個部落格。關於人臉識別 我們有一下兩個步驟 1.利用pca變換的人臉識別,對人臉進...

基於Opencv的人臉識別

當在閱讀書籍opencv3時,偶遇人臉識別這一概念,通過網上查閱得知人臉識別是生物特徵識別的最新應用。在此書籍引導下,寫了乙個最基本的人臉識別 期間有乙個問題需要注意,再往工程目錄匯入xml檔案是注意不要導錯,應該是這兩個haarcascade frontalface alt.xml和haarcas...

使用C 語言,基於opencv的人臉識別

基於opencv的人臉識別,主要是用到了訓練好的haarcascade frontalface default.xml檔案,這是opencv自帶的開源庫檔案,只需要載入程序式之中即可。include include using namespace std using namespace cv 訓練檔...