python做一个识别图片中文字的程序,运行程序后显示窗口,窗口上部分中,左侧显示图片,右侧先后i识别后的文字;下部分有几个按钮,分别是识别,复制,按ctrl+x截图,图片显示上部分左侧,点击识别按钮,开始识别文字,最终结果显示在右侧,,点击复制按钮,可以复制结果到剪贴板
时间: 2024-03-12 12:44:24 浏览: 74
好的,下面是一个可以实现图片文字识别、复制和截图的Python程序,界面分为上下两部分,上半部分左侧为图片显示区,右侧为文字识别结果显示区,下半部分为三个按钮,分别为识别、复制和截图按钮:
```python
import pytesseract
from PIL import Image, ImageTk
import tkinter as tk
import pyperclip
import os
# 创建窗口
root = tk.Tk()
root.title("图片文字识别")
# 创建Frame框架
frame_top = tk.Frame(root)
frame_top.pack(side=tk.TOP)
frame_bottom = tk.Frame(root)
frame_bottom.pack(side=tk.BOTTOM)
# 创建Label标签
label_image = tk.Label(frame_top)
label_image.pack(side=tk.LEFT)
label_text = tk.Label(frame_top, font=("微软雅黑", 16), justify=tk.LEFT)
label_text.pack(side=tk.RIGHT)
# 创建Button按钮
btn_recognize = tk.Button(frame_bottom, text="识别", font=("微软雅黑", 12))
btn_recognize.pack(side=tk.LEFT, padx=10, pady=10)
btn_copy = tk.Button(frame_bottom, text="复制", font=("微软雅黑", 12))
btn_copy.pack(side=tk.LEFT, padx=10, pady=10)
btn_capture = tk.Button(frame_bottom, text="截图", font=("微软雅黑", 12))
btn_capture.pack(side=tk.LEFT, padx=10, pady=10)
# 定义识别函数
def recognize_image():
# 打开图片
img_path = filedialog.askopenfilename()
img = Image.open(img_path)
# 识别图片中的文字
text = pytesseract.image_to_string(img, lang="chi_sim")
# 在窗口中显示图片和识别的文字
photo = ImageTk.PhotoImage(img)
label_image.config(image=photo)
label_image.image = photo
label_text.config(text=text)
# 定义复制函数
def copy_text():
text = label_text.cget("text")
pyperclip.copy(text)
# 定义截图函数
def capture_screen():
os.system("gnome-screenshot -a")
# 绑定按钮事件
btn_recognize.config(command=recognize_image)
btn_copy.config(command=copy_text)
btn_capture.config(command=capture_screen)
root.mainloop()
```
在这个程序中,我们使用了Pytesseract库进行图片文字识别,使用PIL库来打开图片并将图片显示在窗口中,使用Tkinter库来创建GUI窗口并在窗口中显示图片和识别的文字,同时使用pyperclip库来实现复制功能,使用os库来调用系统截图工具。你需要在程序中导入filedialog库,以便在识别函数中打开文件选择窗口。运行程序后,你可以选择一个图片文件,然后点击识别按钮进行文字识别,识别结果将会显示在右侧的文字显示区域。点击复制按钮可以将识别结果复制到剪贴板中,点击截图按钮可以使用系统截图工具进行截图。
阅读全文