学习Tensorflow已经有一段时间了,就想能不能实现手写体的实时在线识别,于是进行了一番探索。本文源代码可以在这里下载【Python3+PyQt5+Tensorflow】创建画板,实时在线手写体识别】
用到的库:Python3.6.5 + PyQt5 + PIL,编写GUI程序,实现手写体实时在线识别。最终实现的效果如下图所示,在方框里用鼠标手写数字,左下角显示识别结果,准确率可以达到99.2%。
1.画板GUI及模型加载(MyMnistWindow.py)
使用PyQt5制作了一个交互式画板,可以用鼠标在上面写字。画板的程序部分参考了【Python3使用PyQt5制作简单的画板/手写板】。
'''
功能:
利用训练好的模型,进行实时手写体识别
作者:yuhansgg
博客: https://blog.csdn.net/u011389706
日期: 2018/08/06
'''
import tensorflow as tf
from PyQt5.QtWidgets import (QWidget, QPushButton, QLabel)
from PyQt5.QtGui import (QPainter, QPen, QFont)
from PyQt5.QtCore import Qt
from PIL import ImageGrab, Image
class MyMnistWindow(QWidget):
def __init__(self):
super(MyMnistWindow, self).__init__()
self.resize(284, 330) # resize设置宽高
self.move(100, 100) # move设置位置
self.setWindowFlags(Qt.FramelessWindowHint) # 窗体无边框
#setMouseTracking设置为False,否则不按下鼠标时也会跟踪鼠标事件
self.setMouseTracking(False)
self.pos_xy = [] #保存鼠标移动过的点
# 添加一系列控件
self.label_draw = QLabel('', self)
self.label_draw.setGeometry(2<