You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python图片转文字脚本无法粘贴识别内容的问题

问题描述

运行以下图片转文字Python脚本后,无法将识别出的内容粘贴使用:

import pytesseract
import pyperclip
import PIL.Image

# 打开图片文件
image = PIL.Image.open('generate_word_picture.png')

# 使用pytesseract提取图片文本
text = pytesseract.image_to_string(image)

# 将文本复制到剪贴板
pyperclip.copy(text)

待识别图片:待识别图片
已完成的依赖安装:

  • 通过pip install pytesseract安装pytesseract库
  • 通过pip install pyperclip安装pyperclip库
  • 已从UB-Mannheim的Tesseract项目维基页面安装Tesseract本体
排查与解决步骤

1. 验证OCR识别结果是否有效

先在脚本中添加打印语句,确认Tesseract是否成功识别出文本:

import pytesseract
import pyperclip
import PIL.Image

image = PIL.Image.open('generate_word_picture.png')
text = pytesseract.image_to_string(image)
# 打印识别结果,查看是否正确
print("识别出的文本:", repr(text))
pyperclip.copy(text)

运行后查看控制台输出:

  • 若输出为空或乱码:说明OCR识别失败,需检查图片清晰度、是否需要预处理(如灰度化、降噪),或确认Tesseract是否安装了对应语言包(默认仅支持英文,若图片含中文需额外安装中文语言包)。
  • 若输出有正确文本:说明问题出在剪贴板复制环节。

2. 修复剪贴板复制问题

(1)适配pyperclip的系统兼容性

pyperclip在不同系统上依赖不同:

  • Windows:若复制失效,尝试重启终端/IDE,或改用系统API直接复制:
    import ctypes
    ctypes.windll.user32.OpenClipboard(0)
    ctypes.windll.user32.EmptyClipboard()
    ctypes.windll.user32.SetClipboardTextW(text)
    ctypes.windll.user32.CloseClipboard()
    
  • macOS:需安装pyobjc依赖,执行pip install pyobjc后重试。
  • Linux:需安装xclip或xsel工具,以Debian/Ubuntu为例,执行sudo apt-get install xclip后重新运行脚本。

(2)清理识别文本中的无效字符

如果识别出的文本包含大量不可见控制字符,可能导致粘贴异常,可先清理文本:

# 清理多余换行、空格,保留可见文本
cleaned_text = ' '.join(text.split())
pyperclip.copy(cleaned_text)

3. 确认Tesseract路径配置

若Tesseract未加入系统环境变量,需在脚本中手动指定安装路径:

# Windows示例路径,替换为你的实际安装路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

内容的提问来源于stack exchange,提问作者Syrex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 00:25:18