OpenCV人臉識(shí)別之三:識(shí)別自己的臉

本系列人臉識(shí)別文章用的是opencv2琴许,最新版的opencv3.2的代碼請(qǐng)參考文章:

OpenCV之識(shí)別自己的臉——C++源碼放送


在之前OpenCV人臉識(shí)別之一:數(shù)據(jù)收集和預(yù)處理OpenCV人臉識(shí)別之二:模型訓(xùn)練兩篇博客中粹湃,已經(jīng)把人臉識(shí)別的整個(gè)流程全部交代清楚了。包括今天這篇人臉識(shí)別方面的內(nèi)容都已經(jīng)在上述第二篇博客中的代碼中有所體現(xiàn)步氏。只是今天的內(nèi)容會(huì)讓結(jié)果更加的形象化。僅此而已∮虢铮可以說(shuō),本篇的內(nèi)容是前面諸多內(nèi)容的一個(gè)整合荚恶。所以今天的內(nèi)容也很簡(jiǎn)潔撩穿。

簡(jiǎn)單說(shuō)下流程:

  1. 打開攝像頭。
  2. 加載人臉檢測(cè)器谒撼,加載人臉模型食寡。
  3. 人臉檢測(cè)
  4. 把檢測(cè)到的人臉與人臉模型里面的對(duì)比,找出這是誰(shuí)的臉嗤栓。
  5. 如果人臉是自己的冻河,顯示自己的名字。

代碼:

#include<opencv2\opencv.hpp>
#include<iostream>

using namespace std;
using namespace cv;

int main()
{
    VideoCapture cap(0);    //打開默認(rèn)攝像頭
    if (!cap.isOpened())
    {
        return -1;
    }
    Mat frame;
    Mat edges;
    Mat gray;

    CascadeClassifier cascade;
    bool stop = false;
    //訓(xùn)練好的文件名稱茉帅,放置在可執(zhí)行文件同目錄下
    cascade.load("haarcascade_frontalface_alt.xml");

    Ptr<FaceRecognizer> modelPCA = createEigenFaceRecognizer();
    modelPCA->load("MyFacePCAModel.xml");
    
    while (!stop)
    {
        cap >> frame;

        //建立用于存放人臉的向量容器
        vector<Rect> faces(0);

        cvtColor(frame, gray, CV_BGR2GRAY);
        //改變圖像大小叨叙,使用雙線性差值
        //resize(gray, smallImg, smallImg.size(), 0, 0, INTER_LINEAR);
        //變換后的圖像進(jìn)行直方圖均值化處理
        equalizeHist(gray, gray);

        cascade.detectMultiScale(gray, faces,
            1.1, 2, 0
            //|CV_HAAR_FIND_BIGGEST_OBJECT
            //|CV_HAAR_DO_ROUGH_SEARCH
            | CV_HAAR_SCALE_IMAGE,
            Size(30, 30));

        Mat face;
        Point text_lb;

        for (size_t i = 0; i < faces.size(); i++)
        {
            if (faces[i].height > 0 && faces[i].width > 0)
            {
                face = gray(faces[i]);
                text_lb = Point(faces[i].x, faces[i].y);

                rectangle(frame, faces[i], Scalar(255, 0, 0), 1, 8, 0);
            }
        }

        Mat face_test;

        int predictPCA = 0;
        if (face.rows >= 120)
        {
            resize(face, face_test, Size(92, 112));
            
        }
        //Mat face_test_gray;
        //cvtColor(face_test, face_test_gray, CV_BGR2GRAY);

        if (!face_test.empty())
        {
            //測(cè)試圖像應(yīng)該是灰度圖
            predictPCA = modelPCA->predict(face_test);
        }

        cout << predictPCA << endl;
        if (predictPCA == 40)
        {
            string name = "LiuXiaoLong";
            putText(frame, name, text_lb, FONT_HERSHEY_COMPLEX, 1, Scalar(0, 0, 255));
        }

        imshow("face", frame);
        if (waitKey(50) >= 0)
            stop = true;
    }

    return 0;
}

效果圖:



     公眾號(hào)CVPy,分享OpenCV和Python的實(shí)戰(zhàn)內(nèi)容堪澎。每一篇都會(huì)放出完整的代碼擂错。歡迎關(guān)注。
公眾號(hào)CVPy
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末樱蛤,一起剝皮案震驚了整個(gè)濱河市钮呀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昨凡,老刑警劉巖爽醋,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異便脊,居然都是意外死亡蚂四,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門哪痰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)遂赠,“玉大人,你說(shuō)我怎么就攤上這事晌杰□文溃” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵肋演,是天一觀的道長(zhǎng)抑诸。 經(jīng)常有香客問(wèn)我烂琴,道長(zhǎng),這世上最難降的妖魔是什么哼鬓? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任监右,我火速辦了婚禮,結(jié)果婚禮上异希,老公的妹妹穿的比我還像新娘健盒。我一直安慰自己,他們只是感情好称簿,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布扣癣。 她就那樣靜靜地躺著,像睡著了一般憨降。 火紅的嫁衣襯著肌膚如雪父虑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天授药,我揣著相機(jī)與錄音士嚎,去河邊找鬼。 笑死悔叽,一個(gè)胖子當(dāng)著我的面吹牛莱衩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播娇澎,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼笨蚁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了趟庄?” 一聲冷哼從身側(cè)響起括细,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎戚啥,沒(méi)想到半個(gè)月后奋单,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猫十,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年览濒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炫彩。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖絮短,靈堂內(nèi)的尸體忽然破棺而出江兢,到底是詐尸還是另有隱情,我是刑警寧澤丁频,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布杉允,位于F島的核電站邑贴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏叔磷。R本人自食惡果不足惜拢驾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望改基。 院中可真熱鬧繁疤,春花似錦、人聲如沸秕狰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鸣哀。三九已至架忌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間我衬,已是汗流浹背叹放。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腮恩。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓磁奖,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親糕档。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,302評(píng)論 25 707
  • 利用opencv實(shí)現(xiàn)人臉識(shí)別 introduction 使用弱聯(lián)級(jí)分類器主要包含兩部分:訓(xùn)練和檢測(cè),檢測(cè)通常使用H...
    lemonCode閱讀 2,962評(píng)論 0 5
  • 本系列人臉識(shí)別文章用的是opencv2拌喉,最新版的opencv3.2的代碼請(qǐng)參考文章: OpenCV之識(shí)別自己的臉—...
    冰不語(yǔ)閱讀 15,762評(píng)論 1 14
  • 一點(diǎn)背景知識(shí) OpenCV 是一個(gè)開源的計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)庫(kù)速那。它包含成千上萬(wàn)優(yōu)化過(guò)的算法,為各種計(jì)算機(jī)視覺(jué)應(yīng)用提...
    沬日十七閱讀 1,016評(píng)論 0 4
  • 我們都愛(ài)笑尿背,因?yàn)槲覀兌际情L(zhǎng)不大的孩子端仰;我們都愛(ài)哭,因?yàn)樵介L(zhǎng)大越孤單田藐。似水流年間荔烧,我們經(jīng)歷了青春,裝飾了年華汽久。匆匆那...
    董多肉小姐閱讀 175評(píng)論 1 1