我将翻译以下关于IT技术的内容。这是一段关于 Python 模块 tesseract 的 Python 封装器的错误信息。
我遇到了一个错误,让我对名为 tesseract 的 Python 模块的封装器感到非常困惑。
以下是我尝试运行的 Python 代码:
img = cv2.imread(image, 0)
api = tesseract.TessBaseAPI()
api.Init(".","eng",tesseract.OEM_DEFAULT)
api.SetPageSegMode(tesseract.PSM_AUTO)
tesseract.SetCvImage(img,api)
url = api.GetUTF8Text()
conf=api.MeanTextConf()
print('Extracted URL : ' + url)
api.End()
这是我得到的内容:
Error opening data file ./tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.
Failed loading language 'eng'
Tesseract couldn't load any languages!
我不明白为什么会出现这种情况,因为我已经将TESSDATA_PREFIX环境变量正确设置为指向我的tesseract安装路径(包括斜杠)。
当我尝试直接在PowerShell中运行Tesseract时(我使用的是Windows 7),我输入了以下命令:
tesseract.exe .\data\test.tif -psm 7 out
它的效果非常好! 当我在我的Python脚本中使用Popen调用Tesseract时,它可以很好地工作,但是我不喜欢我无法直接从stdout获取OCR文本的想法。实际上,似乎没有其他选择,只能向Tesseract提供一个输出文件名,然后打开并从该文件中读取。我觉得为了获得OCR的输出而处理临时文本文件会非常糟糕...
需要帮助吗?
~
扩展到主目录路径是由shell完成的,而Python文件API(或任何其他语言文件API)不是shell。 - Karol Ssubprocess.call(shell=True)
调用 tesseract,然后切换到了 API。 - Navin