-
大小: 38KB文件類型: .py金幣: 1下載: 1 次發布日期: 2021-08-06
- 語言: Python
- 標簽: pythonOpenCV??樹莓派??
資源簡介
本資源是基于樹莓派的人臉識別門禁系統的源碼,帶有界面的系統,使用的是python2.7+OpenCV3.4.0+PyQt5進行開發,具有檢測人臉、錄入人臉、訓練人臉和人臉識別開門的功能,具體可參見博客: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
#?定義人臉標簽和初始化標簽對應的人物名稱
id?=?0
names?=?[‘None‘?‘oneStar‘?‘LR‘?‘GuoMo‘?‘FeiGe‘]
#?導入GPIO
import?RPi.GPIO?as?GPIO?????
#?設置GPIO模式,BCM模式在所有數碼派通用
GPIO.setmode(GPIO.BCM)?
#?設置GPIO25為電流輸出??
GPIO.setup(25?GPIO.OUT)???
#?導入OpenCV自帶的數據集,定義多個是因為在后面有多次調用,用一個的話會報錯
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,重寫mouseReleaseEvent函數
class?mylineedit(QLineEdit):
????clicked?=?pyqtSignal()??#?定義clicked信號
????def?mouseReleaseEvent(self?QMouseEvent):
????????if?QMouseEvent.button()?==?Qt.LeftButton:
????????????self.clicked.emit()??#?發送clicked信號
#?創建主界面類
class?Ui_Menu(QWidget):
????def?__init__(self):
????????super(Ui_Menu?self).__init__()
????????#?創建label并設置文本內容
????????self.label?=?QLabel(‘歡迎使用人臉識別門禁系統‘?self)
????????#?創建普通用戶和管理員按鍵
????????self.btn_ordinary?=?QPushButton(‘普通用戶‘?self)
????????self.btn_admin?=?QPushButton(‘管理員‘?self)
????????#?初始化界面
????????self.init_ui()
????def?init_ui(self):
????????#?設置窗口大小
????????self.resize(1280?800)
????????#?設置label框的位置
????????self.label.move(140?200)
????????
????????#?設置按鍵框的位置和大小
????????self.btn_ordinary.setGeometry(550?420?181?61)
????????self.btn_admin.setGeometry(550?510?181?61)
????????
????????#?設置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字體
????????#?點擊管理員按鈕事件
????????self.btn_admin.clicked.connect(self.slot_btn_admin)
????????#?點擊普通用戶按鈕事件
????????self.btn_ordinary.clicked.connect(self.slot_btn_ordinary)
????#?點點擊管理員按鈕事件
????def?slot_btn_admin(self):
????????self.logon?=?Ui_logon()
????????self.logon.showFullScreen()
????????self.hide
- 上一篇:python爬取淘寶信息并作分析
- 下一篇:畫散點圖輪廓圖雷達圖調和曲線圖等
評論
共有 條評論