车牌识别系统四:Pyqt5编写简易车牌识别界面

车牌识别界面

车牌识别系统设计完成后,最后再使用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_())

测试结果如下:在这里插入图片描述

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值