使用tkinter制作使用EasyOCR的图形界面(Python,Win10)

本文介绍了一个使用tkinter和EasyOCR创建的文字识别GUI应用程序。通过简单的界面操作,用户可以轻松选择图片,并利用EasyOCR从中提取文字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的

为了更方便地应用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”,开始运行程序,界面如下:

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

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

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

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

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

小结

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

相关参考网页

  1. Python光学字符识别工具-EasyOCR安装与使用(Win10). 今日头条  
  2. 使用tkinter开发图形界面显示图片(Win10,Python). 今日头条 
  3. Python之Tkinter进行GUI开发 . Python之Tkinter进行GUI开发_胜天半月子的博客-优快云博客
  4. 在tkinter中显示图片和图片名. 在tkinter中显示图片和图片名_勤勤恳恳的小码农的博客-优快云博客_tkinter显示图片 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alexabc3000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值