车牌识别界面
车牌识别系统设计完成后,最后再使用Pyqt5设计一个简易的车牌识别界面,全部代码如下:
#coding=gbk
"""
车牌识别系统界面(qt)
__author__ = kuang
2019.5.20 7号宿舍楼
"""
import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, QLabel, QHBoxLayout, QVBoxLayout, QLineEdit, QFileDialog
from PyQt5 import QtGui
from PIL import Image
import test1
import plate as pl
import cut
import cv2 as cv
class Example(QWidget):
def __init__(self,parent=None):
super(Example,self).__init__(parent)
self.initUI() #界面绘制交给InitUi方法
def initUI(self):
#定义label读取图片显示原图
self.lb1 = QLabel(self)
self.lb1.setGeometry(0,50,640,480)
#定义车牌定位后的图片
self.lb21 = QLabel(self)
self.lb21.setGeometry(700,50,100,100)
self.lb21.setText('车牌提取结果:')
self.lb21.setStyleSheet("color:white")
#设置车牌定位结果的位置
self.lb2 = QLabel(self)
self.lb2.setGeometry(700,120,160,40)
#分割字符显示
self.lb22 = QLabel(self)
self.lb22.setGeometry(700,145,100,100)
self.lb22.setText('字符分割结果:')
self.lb22.setStyleSheet("color:white")
self.lb31 = QLabel(self)
self.lb31.setGeometry(700,175,100,100)
self.lb32 = QLabel(self)
self.lb32.setGeometry(735,175,100,100)
self.lb33 = QLabel(self)
self.lb33.setGeometry(770,175,100,100)
self.lb34 = QLabel(self)
self.lb34.setGeometry(805,175,100,100)
self.lb35 = QLabel(self)
self.lb35.setGeometry(840,175,100,100)
self.lb36 = QLabel(self)
self.lb36.setGeometry(875,175,100,100)
self.lb37 = QLabel(self)
self.lb37.setGeometry(910,175,100,100)
#定义文本框
self.lb23 = QLabel(self)
self.lb23.setGeometry(700,230,100,100)
self.lb23.setText('车牌识别结果:')
self.lb23.setStyleSheet("color:white")
self.editLine1 = QLineEdit(self)
self.editLine1.setGeometry(700,300,100,30)
#定义按钮
button1 = QPushButton('显示图片',self)
button1.setGeometry(25,600,100,40)
button1.clicked.connect(self.button1_click)
button2 = QPushButton('车牌提取',self)
button2.setGeometry(175,600,100,40)
button2.clicked.connect(self.button2_click)
button4 = QPushButton('字符分割',self)
button4.setGeometry(325,600,100,40)
button4.clicked.connect(self.button4_click)
button3 = QPushButton('车牌识别',self)
button3.setGeometry(475,600,100,40)
button3.clicked.connect(self.button3_click)
#设置背景
window_pale = QtGui.QPalette()
window_pale.setBrush(self.backgroundRole(), QtGui.QBrush(QtGui.QPixmap("back.jpg")))
self.setPalette(window_pale)
#设置窗口的位置和大小
self.setGeometry(200, 100, 1000, 700)
#设置窗口的标题
self.setWindowTitle('车牌识别系统')
#显示窗口
self.show()
def loadfile(self):
imgName, imgType = QFileDialog.getOpenFileName(self, "打开图片", "D://project1//.idea//", "*.jpg;;*.png;;All Files(*)")
print(imgName)
return imgName
def button1_click(self):
imgName = self.loadfile()
img = cv.imread(imgName)
#print (img.size)
out = cv.resize(img,(640,480),)
cv.imwrite("new.jpg",out)
jpg = QtGui.QPixmap('new.jpg')
self.lb1.setPixmap(jpg)
def button2_click(self):
img = cv.imread('new.jpg')
imgp = pl.location(img)
cut.cut(imgp)
out = cv.resize(imgp,(160,40),)
cv.imwrite('newchepai.jpg',out)
jpg1 = QtGui.QPixmap('newchepai.jpg')
self.lb2.setPixmap(jpg1)
def button4_click(self):
jpg = QtGui.QPixmap('D:/project1/test/1.bmp')
self.lb31.setPixmap(jpg)
jpg1 = QtGui.QPixmap('D:/project1/test/2.bmp')
self.lb32.setPixmap(jpg1)
jpg2 = QtGui.QPixmap('D:/project1/test/3.bmp')
self.lb33.setPixmap(jpg2)
jpg3 = QtGui.QPixmap('D:/project1/test/4.bmp')
self.lb34.setPixmap(jpg3)
jpg4 = QtGui.QPixmap('D:/project1/test/5.bmp')
self.lb35.setPixmap(jpg4)
jpg5 = QtGui.QPixmap('D:/project1/test/6.bmp')
self.lb36.setPixmap(jpg5)
jpg6 = QtGui.QPixmap('D:/project1/test/7.bmp')
self.lb37.setPixmap(jpg6)
def button3_click(self):
PROVINCES = ("川","鄂","赣","甘","贵","桂","黑","沪","冀","津","京","吉","辽","鲁","蒙","闽","宁","青","琼","陕","苏","晋","皖","湘","新","豫","渝","粤","云","藏","浙")
a,b = test1.predicts()
c = test1.predictn()
self.editLine1.setText(PROVINCES[b] + c[0] + "·" + c[1:6])
if __name__ == '__main__':
#创建应用程序和对象
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
测试结果如下: