快捷搜索:  汽车  科技

pythontkinter窗口界面设计(使用tkinter制作使用EasyOCR的图形界面)

pythontkinter窗口界面设计(使用tkinter制作使用EasyOCR的图形界面)path_ = tkinter.filedialog.askopenfilename()def choosepic():from PIL import Image ImageTkimport easyocr#选择并显示图片

目的

为了更方便地应用EasyOCR从图片中提取文字的文本,使用tkinter做了使用EasyOCR的图形界面。

源代码

源代码如下:

import tkinter as tk

import tkinter.filedialog

from PIL import Image ImageTk

import easyocr

#选择并显示图片

def choosepic():

path_ = tkinter.filedialog.askopenfilename()

if(len(path_)):

path.set(path_)

print(path.get())

img_open = Image.open(entry.get())

#img = ImageTk.PhotoImage(img_open.resize((200 200)))

img = ImageTk.PhotoImage(img_open)

lableShowImage.config(image=img)

lableShowImage.image = img

#识别图片中的文字

def myEasyOCR():

if(len(path.get())):

#使用EasyOCR识别文字

print("OCR...")

result = easyOcrReader.readtext(path.get() detail = 0 paragraph=True)

print("OCR... OK")

#显示识别结果 #print(result)

strResult.set("".join(result))

print("识别结果为:" strResult.get())

if __name__ == '__main__':

#生成tk界面 app即主窗口

app = tk.Tk()

#修改窗口titile

app.title("显示图片")

#设置主窗口的大小和位置

app.geometry("800x480 200 200")

#打开图片的名

path = tk.StringVar()

#Entry widget which allows displaying simple text.

frame1=tk.Frame(app)

frame1.pack()

label1 = tk.Label(frame1 text='打开的文件名: ').pack(side=tk.LEFT)

entry = tk.Entry(frame1 state='readonly' text=path width = 100)

entry.pack(side=tk.LEFT)

#使用Label显示图片

lableShowImage = tk.Label(app)

lableShowImage.pack()

#按钮容器(Frame)

buttonsContainer = tk.Frame(app)

buttonsContainer.pack()

#选择图片的按钮

buttonSelImage = tk.Button(buttonsContainer text='选择图片' command=choosepic)

buttonSelImage.pack(side=tk.LEFT)

#OCR按钮

buttonEasyOCR = tk.Button(buttonsContainer text='EasyOCR识别文字' command=myEasyOCR)

buttonEasyOCR.pack(side=tk.LEFT)

#Entry widget which allows displaying simple text. 显示识别结果的widget

frame2=tk.Frame(app)

frame2.pack()

label1 = tk.Label(frame2 text='识别结果: ').pack(side=tk.LEFT)

strResult = tk.StringVar()

entryRes = tk.Entry(frame2 state='readonly' text=strResult width = 100)

entryRes.pack(side=tk.LEFT)

#EasyOCR Reader# easyOcrReader = easyocr.Reader(['ch_tra' 'en'])

easyOcrReader = easyocr.Reader(['ch_sim' 'en'])

app.mainloop()

使用方法

假设上述代码保存在文件“d:\temp\MyEasyOcrGui.py”中。

在Win10命令行输入命令“python d:\temp\MyEasyOcrGui.py”,开始运行程序,界面如下:

pythontkinter窗口界面设计(使用tkinter制作使用EasyOCR的图形界面)(1)

点击“选择图片”按钮,弹出打开文件对话框,

pythontkinter窗口界面设计(使用tkinter制作使用EasyOCR的图形界面)(2)

选择要打开的图片文件,点击“打开”按钮,图片就会显示在图形界面上了,如下图所示:

pythontkinter窗口界面设计(使用tkinter制作使用EasyOCR的图形界面)(3)

然后点击“EasyOCR识别文字”按钮,等待一会儿(等待时间的长短与计算机性能、图片的复杂度和图片中的文字个数有关),就会显示识别了。如下图所示(由于没有使用多线程,在识别时界面不响应用户输入):

pythontkinter窗口界面设计(使用tkinter制作使用EasyOCR的图形界面)(4)

在“识别结果”框激活时,使用组合键“Ctrl A”选中全部文字、再使用“Ctrl C”将文字复制到系统剪贴板,就可以将文字粘贴到其他的文本编辑器中进行修改和查看了。

命令行窗口也会显示一些提示信息,截图如下:

pythontkinter窗口界面设计(使用tkinter制作使用EasyOCR的图形界面)(5)

小结

虽然做出的界面不美观,也没有使用多线程。但是从使用的角度来说,与每次都在命令行窗口输入文件名进行识别相比,提高了使用的方便性。

相关参考网页

(1)Python光学字符识别工具-EasyOCR安装与使用(Win10). https://www.toutiao.com/article/7101934180279353859/?log_from=48ef85288b49c_1653793990111

(2)使用tkinter开发图形界面显示图片(Win10,Python). https://www.toutiao.com/article/7102945164041290243/?log_from=7329964cfb69c_1653816122009

(3)Python之Tkinter进行GUI开发 . https://blog.csdn.net/HG0724/article/details/112248635 ()

(4)在tkinter中显示图片和图片名. https://blog.csdn.net/wj0807/article/details/120890111

猜您喜欢: