使用tkinter制作使用EasyOCR的图形界面(Python,Win10)
目的为了更方便地应用EasyOCR从图片中提取文字的文本,使用tkinter做了使用EasyOCR的图形界面。源代码源代码如下:import tkinter as tkimport tkinter.filedialogfrom PIL import Image,ImageTkimport easyocr#选择并显示图片def choosepic():path_ = tkinter.filedial
目的
为了更方便地应用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”将文字复制到系统剪贴板,就可以将文字粘贴到其他的文本编辑器中进行修改和查看了。
命令行窗口也会显示一些提示信息,截图如下:
小结
虽然做出的界面不美观,也没有使用多线程。但是从使用的角度来说,与每次都在命令行窗口输入文件名进行识别相比,提高了使用的方便性。
相关参考网页
- Python光学字符识别工具-EasyOCR安装与使用(Win10). 今日头条
- 使用tkinter开发图形界面显示图片(Win10,Python). 今日头条
- Python之Tkinter进行GUI开发 . Python之Tkinter进行GUI开发_胜天半月子的博客-CSDN博客
- 在tkinter中显示图片和图片名. 在tkinter中显示图片和图片名_勤勤恳恳的小码农的博客-CSDN博客_tkinter显示图片
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)