欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

Opencv LBPH人臉識別算法詳解

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

簡要: 

LBPH(Local Binary PatternsHistograms)局部二進制編碼直方圖,建立在LBPH基礎(chǔ)之上的人臉識別法基本思想如下:首先以每個像素為中心,判斷與周圍像素灰度值大小關(guān)系,對其進行二進制編碼,從而獲得整幅圖像的LBP編碼圖像;再將LBP圖像分為個區(qū)域,獲取每個區(qū)域的LBP編碼直方圖,繼而得到整幅圖像的LBP編碼直方圖,通過比較不同人臉圖像LBP編碼直方圖達到人臉識別的目的,其優(yōu)點是不會受到光照、縮放、旋轉(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ù),用來訓(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);
 //將最后一個樣本作為測試樣本
 Mat testSample = images[images.size() - 1];
 int testLabel = labels[labels.size() - 1];
 //刪除列表末尾的元素
 images.pop_back();
 labels.pop_back();
 
 //加載,訓(xùn)練,預(yù)測
 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;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:c++語言中虛函數(shù)實現(xiàn)多態(tài)的原理詳解

欄    目:C語言

下一篇:如何在c語言下關(guān)閉socket

本文標(biāo)題:Opencv LBPH人臉識別算法詳解

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/295.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有