-
大小: 38KB文件類型: .py金幣: 1下載: 1 次發(fā)布日期: 2021-08-06
- 語(yǔ)言: Python
- 標(biāo)簽: pythonOpenCV??樹(shù)莓派??
資源簡(jiǎn)介
本資源是基于樹(shù)莓派的人臉識(shí)別門禁系統(tǒng)的源碼,帶有界面的系統(tǒng),使用的是python2.7+OpenCV3.4.0+PyQt5進(jìn)行開(kāi)發(fā),具有檢測(cè)人臉、錄入人臉、訓(xùn)練人臉和人臉識(shí)別開(kāi)門的功能,具體可參見(jiàn)博客:https://blog.csdn.net/One_L_Star/article/details/99837868
代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
import?sys
import?cv2
import?threading
from?PyQt5.QtCore?import?QBasicTimer
from?PyQt5.QtCore?import?*
from?PyQt5.QtWidgets?import?QApplication?QWidget?QPushButton?QLabel?QLineEdit?QGridLayout?QMessageBox?QGroupBox
from?PyQt5?import?QtWidgets
from?PyQt5?import?QtCore?QtGui?QtWidgets
from?PyQt5.QtWidgets?import?QWidget?QLabel?QApplication
from?PIL?import?Image
import?numpy?as?np
from?PyQt5.QtWidgets?import?*
from?PyQt5.QtCore?import?*
from?PyQt5.QtGui?import?QPalette?QBrush?QPixmap
import?os
import?RPi.GPIO?as?GPIO
#?定義人臉標(biāo)簽和初始化標(biāo)簽對(duì)應(yīng)的人物名稱
id?=?0
names?=?[‘None‘?‘oneStar‘?‘LR‘?‘GuoMo‘?‘FeiGe‘]
#?導(dǎo)入GPIO
import?RPi.GPIO?as?GPIO?????
#?設(shè)置GPIO模式,BCM模式在所有數(shù)碼派通用
GPIO.setmode(GPIO.BCM)?
#?設(shè)置GPIO25為電流輸出??
GPIO.setup(25?GPIO.OUT)???
#?導(dǎo)入OpenCV自帶的數(shù)據(jù)集,定義多個(gè)是因?yàn)樵诤竺嬗卸啻握{(diào)用,用一個(gè)的話會(huì)報(bào)錯(cuò)
faceCascade?=?cv2.CascadeClassifier(‘/home/pi/Downloads/opencv-3.4.0/data/haarcascades/haarcascade_frontalface_default.xml‘)
faceCascade2?=?cv2.CascadeClassifier(‘/home/pi/Downloads/opencv-3.4.0/data/haarcascades/haarcascade_frontalface_default.xml‘)
faceCascade3?=?cv2.CascadeClassifier(‘/home/pi/Downloads/opencv-3.4.0/data/haarcascades/haarcascade_frontalface_default.xml‘)
#?繼承QLineEdit,重寫(xiě)mouseReleaseEvent函數(shù)
class?mylineedit(QLineEdit):
????clicked?=?pyqtSignal()??#?定義clicked信號(hào)
????def?mouseReleaseEvent(self?QMouseEvent):
????????if?QMouseEvent.button()?==?Qt.LeftButton:
????????????self.clicked.emit()??#?發(fā)送clicked信號(hào)
#?創(chuàng)建主界面類
class?Ui_Menu(QWidget):
????def?__init__(self):
????????super(Ui_Menu?self).__init__()
????????#?創(chuàng)建label并設(shè)置文本內(nèi)容
????????self.label?=?QLabel(‘歡迎使用人臉識(shí)別門禁系統(tǒng)‘?self)
????????#?創(chuàng)建普通用戶和管理員按鍵
????????self.btn_ordinary?=?QPushButton(‘普通用戶‘?self)
????????self.btn_admin?=?QPushButton(‘管理員‘?self)
????????#?初始化界面
????????self.init_ui()
????def?init_ui(self):
????????#?設(shè)置窗口大小
????????self.resize(1280?800)
????????#?設(shè)置label框的位置
????????self.label.move(140?200)
????????
????????#?設(shè)置按鍵框的位置和大小
????????self.btn_ordinary.setGeometry(550?420?181?61)
????????self.btn_admin.setGeometry(550?510?181?61)
????????
????????#?設(shè)置label樣式(字體、大小、顏色等)
????????self.label.setstyleSheet(
????????????“QLabel{color:rgb(000255);“??#?字體顏色為黑色
????????????“font-size:82px;font-weight:bold;“??#?大小為70?加粗
????????????“font-family:Roman?times;}“)??#?Roman?times字體
????????self.btn_ordinary.setstyleSheet(
????????????“QPushButton{color:rgb(000255);“??#?字體顏色為黑色
????????????“font-size:30px;“??#?大小為30?
????????????“font-family:Roman?times;}“)??#?Roman?times字體
????????self.btn_admin.setstyleSheet(
????????????“QPushButton{color:rgb(000255);“??#?字體顏色為黑色
????????????“font-size:30px;“??#?大小為30?
????????????“font-family:Roman?times;}“)??#?Roman?times字體
????????#?點(diǎn)擊管理員按鈕事件
????????self.btn_admin.clicked.connect(self.slot_btn_admin)
????????#?點(diǎn)擊普通用戶按鈕事件
????????self.btn_ordinary.clicked.connect(self.slot_btn_ordinary)
????#?點(diǎn)點(diǎn)擊管理員按鈕事件
????def?slot_btn_admin(self):
????????self.logon?=?Ui_logon()
????????self.logon.showFullScreen()
????????self.hide
評(píng)論
共有 條評(píng)論