在非英语语言的任何地方使用pytesseract ocr



我正在Python Anywhere中创建一个用于OCR的网站。在这个网站中,用户可以上传文本图像并以可编辑的格式下载。对于英语来说,它运行得很好,但当我尝试包含一些额外的语言(南印度语言(时,它显示了一些错误信息。

我把我额外的训练数据放在文件夹"中/home/willtomalalamocr/mysite/langfiles";它包含";mal.traineddata";文件

在我的代码中

pytesseract.pytesseract.tesseract_cmd = r"/usr/bin/tesseract"
custom_oem_psm_config = '-l {} --psm {} --tessdata-dir "/home/wiltomalayalamocr/mysite/langfiles"'.format(lang,6)
text = pytesseract.image_to_string(Image.open(filename) , config=custom_oem_psm_config)

其中lang=";mal";但是我得到错误

pytesseract.pytesseract.TesseractError: (1, 'Tesseract Open Source OCR Engine v3.04.01 with Leptonica Error opening data file /usr/share/tesseract-ocr/tessdata/mal.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory. Failed loading language 'mal' Tesseract couldn't load any languages! Could not initialize tesseract.')

我使用的是python Flask框架

任何人都可以帮我。。。。

在最后两天的搜索和尝试中,我得到了这个的解决方案

在bash控制台中设置如下环境变量是不够的

$export TESSDATA_PREFIX = /home/wiltomalayalamocr/mysite/langfiles

它不会对我们的应用程序产生影响,所以我们需要做的是在加载应用程序时设置环境变量。所以我所做的和下面链接告诉的一样

https://help.pythonanywhere.com/pages/environment-variables-for-web-apps/

我的项目目录是/home/willtomalalamocr/mysite我的.env文件包含export TESSDATA_PREFIX=/home/wiltomalayalamocr/mysite/langfiles
在WSGI配置文件中,我添加了以下代码行

import os
from dotenv import load_dotenv
project_folder = os.path.expanduser('/home/wiltomalayalamocr/mysite')  # adjust as appropriate
load_dotenv(os.path.join(project_folder, '.env'))

最新更新