<h3>opencv tensorflow基于卷积神经网络的学生人脸识别检测系统</h3>
<p><strong>如需安装运行环境或远程调试,可加QQ905733049由专业技术人员远程协助!</strong></p>
<p><strong>运行代码如下:</strong></p>
<pre class="blockcode"><code>import cv2
import sys
import os
import get_face
import tensorflow as tf
from PyQt5.QtWidgets import *
from MainUI import Ui_Face_Recognition_window
from addStudent import Ui_Form_Student
from delwin_ui import Ui_Form_Del
class del_window(QDialog, Ui_Form_Del):
def refresh(self):
proclass = self.comboBox_selectClass.currentText()
self.combobox_init(proclass=proclass)
id = self.opsql.show_student_id(proclass)
self.comboBox_selectId.clear()
for i in range(len(id)):
print(id[i])
self.comboBox_selectId.addItem(str(id[i]))
# 获取班级列表
def combobox_init(self, proclass=None):
self.comboBox_selectClass.clear()
table_name, table_nmu = self.opsql.select_all_table()
readlines = table_nmu
lineindex = 0
while lineindex < readlines:
self.comboBox_selectClass.addItem(table_name[lineindex])
lineindex += 1
if proclass != '':
self.comboBox_selectClass.setCurrentText(proclass)
def btn_enter(self):
CLASS = self.comboBox_selectClass.currentText()
id = self.comboBox_selectId.currentText()
# 从本地删除src_img文件
path_src = '../src_img/{CLASS}_{id}.jpg'.format(CLASS=CLASS, id=id)
path_emb = '../emb_img/{CLASS}_{id}.jpg'.format(CLASS=CLASS, id=id)
if os.path.exists(path_src):
os.remove(path_src)
# 从本地删除emb_img文件
if os.path.exists(path_emb):
os.remove(path_emb)
self.opsql.Delete_File_Name(CLASS, id) # 从数据库中删除这个文件名
msg = QtWidgets.QMessageBox.information(self, u"完成", u"删除完成!",
buttons=QtWidgets.QMessageBox.Ok,
defaultButton=QtWidgets.QMessageBox.Ok)
self.combobox_init()
# 删除考勤表
class DelCheckTable(QDialog, Ui_Form_delCheckTable):
def __init__(self):
super(DelCheckTable, self).__init__()
self.setupUi(self)
self.initslot()
self.opsql = Operate_Sql()
self.opfile = File_Operate()
self.comboBox_delCheckTable.clear()
self.init_check_table()
def init_check_table(self):
table_name, table_nmu = self.opsql.select_all_checktable()
readlines = table_nmu
lineindex = 0
while lineindex < readlines:
row = table_name[lineindex] #
self.comboBox_delCheckTable.addItem(table_name[lineindex])
lineindex += 1
def initslot(self):
self.btn_cancel.clicked.connect(self.btn_hide)
self.btn_confirm.clicked.connect(self.confirm)
self.btn_refresh.clicked.connect(self.refresh)
def refresh(self):
self.comboBox_delCheckTable.clear()
self.init_check_table()
def btn_hide(self):
self.hide()
def confirm(self):
check_name = self.comboBox_delCheckTable.currentText()
flag = self.opsql.delete_check_table(check_name)
if flag:
print("完成")
msg = QtWidgets.QMessageBox.information(self, u"完成", u"删除成功!",
buttons=QtWidgets.QMessageBox.Ok,
defaultButton=QtWidgets.QMessageBox.Ok)
else:
print('失败')
msg = QtWidgets.QMessageBox.warning(self, u"警告", u"不存在这个表,请更改",
buttons=QtWidgets.QMessageBox.Ok,
defaultButton=QtWidgets.QMessageBox.Ok)
# 删除人脸数据表
class DelClassTable(QDialog, Ui_DelClassTable):
def __init__(self):
super(DelClassTable, self).__init__()
self.setupUi(self)
self.initslot()
self.opsql = Operate_Sql()
self.opfile = File_Operate()
self.init_facedate_table()
# 初始化信号槽
# 初始化
def init_facedate_table(self):
table_name, table_nmu = self.opsql.select_all_table()
readlines = table_nmu
lineindex = 0
while lineindex < readlines:
row = table_name[lineindex] #
self.comboBox_del_facedata_table.addItem(table_name[lineindex])
lineindex += 1
def initslot(self):
self.btn_cancel.clicked.connect(self.btn_hide)
self.btn_confirm.clicked.connect(self.confirm)
self.btn_refresh.clicked.connect(self.refresh)
def refresh(self):
self.comboBox_del_facedata_table.clear()
self.init_facedate_table()
def btn_hide(self):
self.hide()
def confirm(self):
# 获取院系班级
facedate = self.comboBox_del_facedata_table.currentText()
flag = self.opsql.delete_pc_table(facedate)
if flag:
print("完成")
|
|