最近参加一个图像信息安全与人工智能结合的比赛,评审后专家说要有一个应用场景,做了一个基于加密图像的身份认证场景程序,pyqyt5写的
from PyQt5.QtWidgets import *
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from qtconsole.qt import QtGui
import cv2 as cv
import numpy as np
class First(QWidget):
def __init__(self):
super(First, self).__init__()
self.setGeometry(300, 300, 500, 500)
self.setWindowTitle('图像加密应用场景程序')
self.setup_ui()
self.size_move()
def setup_ui(self):
self.lb0 = QLabel(self, text='图像加密应用场景演示程序')
self.lb1=QLabel(self,text='账号:')
self.le1=QLineEdit(self)
self.lb2 = QLabel(self, text='密码:')
self.le2= QLineEdit(self)
self.le2.setEchoMode(2)
self.btn1=QPushButton(self,text='登录')
self.btn1.clicked.connect(lambda:self.login_slot())
self.btn2 = QPushButton(self, text='退出')
self.btn2.clicked.connect(lambda:self.quclose())
def size_move(self):
self.lb0.resize(200, 200)
self.lb0.setStyleSheet('font,:90px')
self.lb0.move(150,20)
self.lb1.resize(100,20)
self.lb1.setStyleSheet('font,:20px')
self.lb1.move(100,150)
self.le1.resize(160,20)
self.le1.move(150,150)
self.lb2.resize(100, 20)
self.lb2.setStyleSheet('font,:20px')
self.lb2.move(100, 200)
self.le2.resize(160,20)
self.le2.move(150,200)
self.btn1.move(100, 250)
self.btn2.move(250, 250)
def login_slot(self):
name=self.le1.text()
pwd=self.le2.text()
if name =='admin' and pwd =='123':
b.show()
else:
self.le1.setText('')
self.le1.setFocus()
self.le2.setText('')
QMessageBox.warning(self, '错误', '用户名或密码不正确!')
def quclose(self):
reply = QMessageBox.information(self, "警告", "确认退出?",QMessageBox.Yes | QMessageBox.No)
if reply == QMessageBox.Yes:
self.close()
else:
self.show()
class Second(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(400, 400, 600, 600)
self.setWindowTitle('上传身份图片')
self.label = QLabel(self)
self.label.setText(" 显示图片")
self.label.setFixedSize(300, 200)
self.label.move(160, 160)
self.label.setStyleSheet("QLabel{background:white;}"
"QLabel{color:rgb(300,300,300,120);font-size:10px;font-weight:bold;font-family:宋体;}"
)
btn1 = QPushButton(self)
btn1.setText("上传图片")
btn1.move(100, 80)
btn1.clicked.connect(self.openimage)
def openimage(self):
src = cv.imread('E:/s/1.png')
imgName, imgType = QFileDialog.getOpenFileName(self, "打开图片", "jpg", "*.bmp;;*.png;;All Files(*)")
jpg = QtGui.QPixmap(imgName).scaled(self.label.width(), self.label.height())
self.label.setPixmap(jpg)
c.show()
class Thrid(QWidget):
def __init__(self):
super(Thrid, self).__init__()
self.setGeometry(300, 300, 500, 500)
self.setWindowTitle('加密身份验证')
#self.setup1_ui()
self.btn3 = QPushButton(self, text='加密身份验证')
self.btn3.clicked.connect(lambda: self.setup1_ui())
self.btn3.resize(150, 150)
self.btn3.setStyleSheet('font,:20px')
self.btn3.move(160, 150)
def setup1_ui(self):
QMessageBox.warning(self, '身份验证', '恭喜!身份验证成功!')
if __name__ == '__main__':
app=QApplication(sys.argv)
win=First()
win.show()
b=Second()
c=Thrid()
sys.exit(app.exec_())