国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

Opencv LBPH人臉識(shí)別算法詳解

2020-01-26 13:27:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

簡(jiǎn)要: 

LBPH(Local Binary PatternsHistograms)局部二進(jìn)制編碼直方圖,建立在LBPH基礎(chǔ)之上的人臉識(shí)別法基本思想如下:首先以每個(gè)像素為中心,判斷與周圍像素灰度值大小關(guān)系,對(duì)其進(jìn)行二進(jìn)制編碼,從而獲得整幅圖像的LBP編碼圖像;再將LBP圖像分為個(gè)區(qū)域,獲取每個(gè)區(qū)域的LBP編碼直方圖,繼而得到整幅圖像的LBP編碼直方圖,通過(guò)比較不同人臉圖像LBP編碼直方圖達(dá)到人臉識(shí)別的目的,其優(yōu)點(diǎn)是不會(huì)受到光照、縮放、旋轉(zhuǎn)和平移的影響。

#include<opencv2/opencv.hpp>#include<opencv2/face.hpp>using namespace cv;using namespace face;using namespace std;char win_title[40] = {}; int main(int arc, char** argv) {  //namedWindow("input",CV_WINDOW_AUTOSIZE);  //讀入模型需要輸入的數(shù)據(jù),用來(lái)訓(xùn)練的圖像vector<Mat>images和標(biāo)簽vector<int>labels string filename = string("path.txt"); ifstream file(filename); if (!file) { printf("could not load file"); } vector<Mat>images; vector<int>labels; char separator = ';'; string line,path, classlabel; while (getline(file,line)) { stringstream lines(line); getline(lines, path, separator); getline(lines, classlabel); //printf("%d/n", atoi(classlabel.c_str())); images.push_back(imread(path, 0)); labels.push_back(atoi(classlabel.c_str()));//atoi(ASCLL to int)將字符串轉(zhuǎn)換為整數(shù)型 } int height = images[0].rows; int width = images[0].cols; printf("height:%d,width:%d/n", height, width); //將最后一個(gè)樣本作為測(cè)試樣本 Mat testSample = images[images.size() - 1]; int testLabel = labels[labels.size() - 1]; //刪除列表末尾的元素 images.pop_back(); labels.pop_back();  //加載,訓(xùn)練,預(yù)測(cè) Ptr<LBPHFaceRecognizer> model = LBPHFaceRecognizer::create(); model->train(images, labels); int predictedLabel = model->predict(testSample); printf("actual label:%d,predict label :%d/n", testLabel, predictedLabel);  int radius = model->getRadius(); int neibs = model->getNeighbors(); int grad_x = model->getGridX(); int grad_y = model->getGridY(); double t = model->getThreshold(); printf("radius:%d/n", radius); printf("neibs:%d/n", neibs); printf("grad_x:%d/n", grad_x); printf("grad_y:%d/n", grad_y); printf("threshold:%.2f/n", t);  waitKey(0); return 0;}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 全州县| 蓝田县| 南安市| 綦江县| 昌江| 从江县| 武义县| 山阴县| 谢通门县| 汝阳县| 英吉沙县| 周至县| 齐河县| 巨野县| 洞头县| 苏尼特左旗| 岳普湖县| 随州市| 富裕县| 洪雅县| 凤阳县| 临泉县| 泸州市| 八宿县| 武清区| 罗定市| 丹凤县| 乌审旗| 安福县| 仙游县| 同江市| 开原市| 平湖市| 革吉县| 兴安县| 同心县| 正定县| 平利县| 枣阳市| 泰和县| 西乌珠穆沁旗|