from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QTableWidgetItem
#from PyQt5.QtGui import *
from PyQt5.QtGui import QPixmap, QPalette
from PyQt5.QtCore import pyqtSlot, Qt, QThread, pyqtSignal, QEvent
from UI.ui_LicensePlate import Ui_MainWindow
import pyqtgraph
import numpy as np
import onnxruntime
import cv2
import os
import sys
# sys.path.append("../license_plate")
import onnx_infer
from PIL import Image, ImageDraw, ImageFont
import time
# 设置 PyQtGraph 显示配置
########################################################################################################################
# 设置显示背景色为白色,默认为黑色
pyqtgraph.setConfigOption('background', 'w')
# 设置显示前景色为黑色,默认为灰色
pyqtgraph.setConfigOption('foreground', 'k')
# 设置图像显示以行为主,默认以列为主
pyqtgraph.setConfigOption('imageAxisOrder', 'row-major')
class MainWindow(Ui_MainWindow, QMainWindow):
def __init__(self):
super(Ui_MainWindow, self).__init__()
self.setupUi(self)
self.widget.ui.histogram.hide()
self.widget.ui.menuBtn.hide()
self.widget.ui.roiBtn.hide()
self.currowcnt = 0
self.rbtnstate = 0
self.thrdtest = WorkerThread(self)
self.vwthread = None
self.label_11.setText('<a href="https://github.com/niceboy086/license-plate-recognition">https://github.com/niceboy086/license-plate-recognition</a>')
self.label_13.setText('<a href="https://blog.csdn.net/ggw007">https://blog.csdn.net/ggw007</a>')
self.label_11.setOpenExternalLinks(True)
self.label_13.setOpenExternalLinks(True)
self.label_11.installEventFilter(self)
self.label_13.installEventFilter(self)
self.labelcolor = self.label_11.palette().color(QPalette.Window)
self.label_14.setText('47391900')
self.label_14.setStyleSheet("background-color: yellow;color: blue;font: bold;" )
#self.label_14.setTextInteractionFlags(Qt.TextSelectableByMouse)
self.label_14.installEventFilter(self)
self.label_14.setToolTip('单击QQ号复制到剪贴板!')
self.tableWidget.verticalHeader().setVisible(False)
self.tableWidget.horizontalHeader().setStyleSheet(
"border-bottom-width: 0.5px;border-style: outset;border-color: rgb(220,220,220);")
self.tableWidget.setRowCount(5)
self.tableWidget.setColumnCount(7)
self.tableWidget.setHorizontalHeaderLabels(
['序号', '图片文件', '车牌号','颜色','位置', '关键点', '置信度'])
self.model_det_path = "model/plate_detect.onnx"
self.model_rec_path = "model/plate_rec_color.onnx"
providers = ['CPUExecutionProvider']
self.session_detect = onnxruntime.InferenceSession(
self.model_det_path, providers=providers)
self.session_rec = onnxruntime.InferenceSession(
self.model_rec_path, providers=providers)
self.pushButton_2.clicked.connect(self.recFrom) # type: ignore
# self.pushButton_3.clicked.connect(self.recFromFolder) # type: ignore
#toggled信号与槽函数绑定
self.radioButton_3.toggled.connect(lambda: self.btnstate(self.radioButton_3))
self.radioButton_2.toggled.connect(lambda: self.btnstate(self.radioButton_2))
self.radioButton.toggled.connect(lambda: self.btnstate(self.radioButton))
self.thrdtest.signUi.connect(self.acceptthreadsignal)
self.thrdtest.finished.connect(self.threadfinished)
def eventFilter(self, obj, event):
if obj == self.label_11:
if event.type() == QEvent.Enter:
print("label_11 mouse enter")
self.label_11.setStyleSheet("background-color: yellow; ")
return True # 说明这个事件已被处理,其他控件别插手
elif event.type() == QEvent.Leave:
print("label_11 mouse leave")
font = self.label_11.font()
font.setBold(False)
self.label_11.setFont(font)
self.label_11.setStyleSheet("background-color: {self.labelcolor}; ")
return True # 说明这个事件已被处理,其他控件别插手
elif event.type() == QEvent.MouseButtonPress:
print("label_11 mouse MouseButtonPress")
font = self.label_11.font()
font.setBold(True)
self.label_11.setFont(font)
return True # 说明这个事件已被处理,其他控件别插手
elif event.type() == QEvent.MouseButtonRelease:
print("label_11 mouse MouseButtonRelease")
font = self.label_11.font()
font.setBold(False)
self.label_11.setFont(font)
#return True # 说明这个事件已被处理,其他控件别插手
elif obj == self.label_13:
if event.type() == QEvent.Enter:
print("label_13 mouse enter")
self.label_13.setStyleSheet("background-color: yellow; ")
return True # 说明这个事件已被处理,其他控件别插手
elif event.type() == QEvent.Leave:
print("label_13 mouse leave")
font = self.label_13.font()
font.setBold(False)
self.label_13.setFont(font)
self.label_13.setStyleSheet("background-color: {self.labelcolor}; ")
return True # 说明这个事件已被处理,其他控件别插手
elif event.type() == QEvent.MouseButtonPress:
print("label_13 mouse MouseButtonPress")
font = self.label_13.font()
font.setBold(True)
self.label_13.setFont(font)
return True # 说明这个事件已被处理,其他控件别插手
elif event.type() == QEvent.MouseButtonRelease:
print("label_13 mouse MouseButtonRelease")
font = self.label_13.font()
font.setBold(False)
self.label_13.setFont(font)
#return True # 说明这个事件已被处理,其他控件别插手
elif obj == self.label_14:
if event.type() == QEvent.MouseButtonRelease:
print("label_14 mouse MouseButtonRelease")
clipboard = QApplication.clipboard()
clipboard.setText(self.label_14.text())
#return True # 说明这个事件已被处理,其他控件别插手
return QMainWindow.eventFilter(self, obj, event) # 交由其他控件处理
def recFromPic(self, filename):
#print("*debug, xxx*, RecFromPic:", filename)
filename =filename.replace('\\', '/')
pathseg = filename.split('/')[0:-2]
#print(pathseg, type(pathseg))
pathseg.append('result_onnx')
#print(pathseg, type(pathseg))
save_path = '/'.join(pathseg)
#print(save_path)
result_list, img0 = onnx_infer.det_rec_plate(
self.session_detect, self.session_rec, filename)
#print("*debug, xxx*, result_list:", type(result_list))
ori_img = onnx_infer.draw_result(img0, result_list)
img_name = os.path.basename(filename)
save_img_path = os.path.join(save_path,img_name)
#print(save_img_path)
cv2.imwrite(save_img_path,ori_img)
return result_list, ori_img, filename
def recFromMemPic(self, img):
result_list, img0 = onnx_infer.det_rec_plate(
self.session_detect, self.session_rec, img)
#print("*debug, xxx*, result_list:", type(result_list))
ori_img = onnx_infer.draw_result(img0, result_list)
return result
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
LicensePlaterecognition.rar (28个子文件)
onnx_infer.py 11KB
MainApp.py 9KB
MainApp_thread.py 10KB
车牌识别运行界面.jpg 129KB
result_onnx
res
folder.ico 52KB
doc2.ico 71KB
doc.ico 71KB
wmp.ico 103KB
CUDA File.ico 5KB
VStudio.ico 359KB
model
plate_rec_color.onnx 706KB
plate_detect.onnx 5.17MB
MainApp_video.py 19KB
videos
2.mp4 23.22MB
imgs
single_yellow.jpg 85KB
Quicker_20220930_181044.png 328KB
single_green.jpg 903KB
6.jpg 153KB
1.jpg 77KB
shi_lin_guan.jpg 47KB
tmp8F1F.png 932KB
0.jpg 1.81MB
double_yellow.jpg 29KB
hongkang1.jpg 571KB
moto.png 400KB
fonts
platech.ttf 14.01MB
UI
LicensePlate.ui 11KB
ui_LicensePlate.py 11KB
共 28 条
- 1
资源评论
ggw007
- 粉丝: 12
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功