-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun.py
127 lines (98 loc) · 4.31 KB
/
run.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import sys
from PyQt5.QtGui import QTextCursor
import designer.MainGUI as MainGUI
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import QtWidgets
import ppocrDemo
from PyQt5.QtCore import pyqtSignal, QObject
import ctypes
from threading import Thread
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("myappid")
class MySignals(QObject):
# 定义信号
signal_count = pyqtSignal(str)
signal_ocr = pyqtSignal(str)
signal_count_2 = pyqtSignal(str)
signal_err_ocr = pyqtSignal(str)
signal_xz1 = pyqtSignal(str)
signal_xz2 = pyqtSignal(str)
class Signals(QMainWindow, MainGUI.Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.init_ui()
# 实例化
self.ms_signals_count = MySignals()
self.ms_signals_ocr = MySignals()
self.ms_signals_count_2 = MySignals()
self.ms_signals_err_ocr = MySignals()
self.ms_signals_xz1 = MySignals()
self.ms_signals_xz2 = MySignals()
# 连接信号
self.ms_signals_count.signal_count.connect(self.update_count)
self.ms_signals_ocr.signal_ocr.connect(self.update_ocr)
self.ms_signals_count_2.signal_count_2.connect(self.update_count_2)
self.ms_signals_err_ocr.signal_err_ocr.connect(self.update_err_ocr)
self.ms_signals_xz1.signal_xz1.connect(self.update_xz1)
self.ms_signals_xz2.signal_xz2.connect(self.update_xz2)
def update_count(self, count):
self.count.setText(str(count))
def update_ocr(self, status):
self.startButton.setText(status)
def update_count_2(self, count2):
self.count_2.setText(str(count2))
def update_err_ocr(self, err):
self.log.setText(err)
def update_xz1(self, txt):
self.img_path.setText(txt.replace('/', '\\'))
def update_xz2(self, txt):
self.csv_path.setText(txt.replace('/', '\\'))
def onclick1(self):
img_path = self.img_path.text()
csv_path = self.csv_path.text()
def run_count():
_, count = ppocrDemo.manyImages(img_path)
self.ms_signals_count.signal_count.emit(str(count))
t1 = Thread(target=run_count)
t1.start()
def run_ocr():
self.ms_signals_ocr.signal_ocr.emit("正在进行识别...")
err, err_num = ppocrDemo.ocr(img_path, csv_path + '/')
str_err = ''
for i in range(len(err)):
str_err += str(i) + '. ' + str(err[i]) + '\n'
self.ms_signals_ocr.signal_ocr.emit("识别完成!")
self.ms_signals_err_ocr.signal_err_ocr.emit(str_err)
self.ms_signals_count_2.signal_count_2.emit(str(err_num))
t2 = Thread(target=run_ocr)
t2.start()
def onclick2(self):
self.img_path.setText("")
self.csv_path.setText("")
self.count.setText("0")
self.startButton.setText("点击开始识别")
def onclick3(self, filepath):
m = QtWidgets.QFileDialog.getExistingDirectory(None, "选取文件夹", "F:/") # 起始路径
self.ms_signals_xz1.signal_xz1.emit(m)
def onclick4(self, filepath):
m = QtWidgets.QFileDialog.getExistingDirectory(None, "选取文件夹", "D:/") # 起始路径
self.ms_signals_xz2.signal_xz2.emit(m)
def init_ui(self):
MainGUI.Ui_MainWindow.setupUi(self, self)
self.img_path.setPlaceholderText("请输入图片文件夹全路径(例如:F:\\images)")
self.img_path.setText("D:\\Desktop\\OCRandQPTandIS\\testimg")
self.csv_path.setPlaceholderText("请输入csv文件夹全路径(例如:D:\\desktop\\csv)")
self.csv_path.setText("D:\\Desktop\\OCRandQPTandIS\\csv")
self.count.setText("0")
self.count_2.setText("0")
self.log.setPlaceholderText("暂未发现风险数据")
self.log.moveCursor(QTextCursor.End)
self.startButton.clicked.connect(self.onclick1)
self.resetButton.clicked.connect(self.onclick2)
self.xzbtn1.clicked.connect(self.onclick3)
self.xzbtn2.clicked.connect(self.onclick4)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Signals()
window.show()
sys.exit(app.exec_())