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

Python3.6下OpenCV+OCR图像文本识别遇FileNotFoundError求助

解决Python3.6中pytesseract触发FileNotFoundError的问题

看起来你遇到的问题不是Python2.7到3.6的版本兼容锅,而是pytesseract找不到底层的Tesseract OCR引擎导致的。我来给你拆解下原因和解决办法:

问题根源

pytesseract只是Python的一个封装库,它本身不做文字识别,真正干活的是Tesseract OCR引擎。你的报错FileNotFoundError: [WinError 2] 系统找不到指定文件,本质是subprocess启动tesseract.exe失败——要么你没装Tesseract,要么装了但Python找不到它的路径。

分步解决办法

1. 先确认Tesseract OCR是否安装

如果你的Python2.7环境之前能跑,大概率当时系统里装了Tesseract,但新的Python3.6环境没配置。

  • 下载Windows版本的Tesseract安装包,安装时一定要勾选**"Add to PATH"**选项,这样系统全局能找到tesseract.exe。
  • 如果已经安装但没加PATH,记好你的安装路径(比如默认是C:\Program Files\Tesseract-OCR\),后面要用到。

2. 让pytesseract找到Tesseract路径

有两种方式:

  • 方式一:修改系统PATH:把Tesseract的安装目录(比如C:\Program Files\Tesseract-OCR\)添加到系统环境变量PATH里,然后重启PyCharm生效。
  • 方式二:代码里直接指定:不想改系统变量的话,在代码开头加上这一行(替换成你实际的安装路径):
    pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    

3. 优化代码(可选但推荐)

你的代码里先保存处理后的图片再用PIL打开,其实可以直接把cv2的图像转成PIL格式,省掉文件IO,还能避免路径问题:

import cv2
import numpy as np
import pytesseract
from PIL import Image

# 新增:指定Tesseract路径(如果没加系统PATH的话)
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

src_path = "C:/Users/crist/Desktop/borrar/lectura/"

def get_string(img_path):
    # 读取图片,先检查是否读取成功
    img = cv2.imread(img_path)
    if img is None:
        raise ValueError(f"无法读取图片:{img_path}")
    
    # 转灰度图
    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 降噪:膨胀+腐蚀
    kernel = np.ones((1, 1), np.uint8)
    img = cv2.dilate(img, kernel, iterations=1)
    img = cv2.erode(img, kernel, iterations=1)
    
    # 直接把cv2图像转成PIL格式,不用保存再读取
    pil_img = Image.fromarray(img)
    # 识别文字
    result = pytesseract.image_to_string(pil_img)
    
    return result

print ('--- Start recognize text from image ---')
print (get_string(src_path + "2.png"))
print ("------ Done -------")

关于Python2.7到3.6的兼容说明

你的原代码其实大部分在3.6都能跑:

  • print语句你已经加了括号,符合3.x语法;
  • cv2、numpy、PIL(现在叫Pillow,不过导入时还是from PIL import Image)在3.6都有兼容版本;
  • 真正的坑就是Tesseract的路径配置,和版本迁移无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:37:09