日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

Qt5.7+Opencv2.4.9人脸识别(二)人脸采集

發布時間:2025/3/15 pytorch 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt5.7+Opencv2.4.9人脸识别(二)人脸采集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【注意】本博文的檔次適合OpenCV初學者,和要做本科生畢業設計這類檔次。

源碼的下載地址和原理理論部分請走下面連接

http://blog.csdn.net/qq78442761/article/details/71157980


此節博文將講述人臉采集!

人臉采集必不可少的是人臉檢測,Opencv提供了haarcascade這個檢測這個檢測就是存儲了一些值,比如眼睛的顏色比臉頰深,嘴巴的顏色比周圍深。

在此,下面這個鏈接比較詳細的說明了Opencv人臉檢測,感興趣的同志可以去看看。

http://blog.csdn.net/qq78442761/article/details/61918994



這一節將實現的功能如下:

1.點擊功能增加照片后如下圖所示:


輸入姓名后,點擊拍照,按"P"進行拍照,拍完10張后,會在AddData文件夾里面保存剛剛拍下的10張圖片,如下圖所示:



然后在Data目錄下中的people.txt文件夾存儲自動生成的id和姓名,如下圖所示:


【注意】此文件是預先創建好的,采用UTF-8編碼,不要用ASCII,不然Qt Creator 還得對文件進行編碼處理。這里這個小小的設置可以少寫很多代碼。


下面講解如何實現這一功能:

代碼如下,在addpeople.cpp中

void AddPeople::on_TakeAPotoBtn_clicked() {if(ui->NamelineEdit->text()==NULL){QMessageBox::warning(this,tr("錯誤"),tr("請輸入姓名"),QMessageBox::Ok);}else{ui->NamelineEdit->setEnabled(false);ui->TakeAPotoBtn->setEnabled(false);capture=new cv::VideoCapture(0);int i=0;while (i!=10){char key = cv::waitKey(100);*capture >> frame;imshow("frame", frame);std::string filename = cv::format("AddData\\%d.jpg", i+1);switch (key){case'p':i++;imwrite(filename, frame);imshow("photo", frame);cv::waitKey(500);cv::destroyWindow("photo");break;default:break;}}capture->release();cv::destroyWindow("frame");ui->NamelineEdit->setEnabled(true);ui->TakeAPotoBtn->setEnabled(true);}int i=file.GetMaxNum("Data//people.txt");//qDebug()<<i<<endl;QString text=QString::number(i,10)+" "+ui->NamelineEdit->text();file.AddPeople("Data//people.txt",text);MaxNumAboutPeople=i; }
這里就實現了拍照的功能,再調用std::string filename = cv::format("AddData\\%d.jpg", i+1);就能存儲文件了。

如果在people.txt存儲信息,在上面的代碼中可以可以調用了file.AddPeople("Data//people.txt",text);

下面就來看看這個Addpeople這個函數:

void MyFILE::AddPeople(QString path,QString text) {QFile file(path);if(!file.open(QIODevice::WriteOnly|QIODevice::Append)){QMessageBox about;about.setText(tr("添加人員時文件打開失敗"));about.exec();return;}QTextStream in(&file);in.setCodec("UTF-8");in<<text<<"\r\n";file.close(); } 是不是很簡單呢!

在此,人臉采集結束了,人臉處理將會在下一節說明。

源碼和理論部分在本博文開頭有提供。

總結

以上是生活随笔為你收集整理的Qt5.7+Opencv2.4.9人脸识别(二)人脸采集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。