Pytesseract 加载语言失败 'chi-sim'
Pytesseract Failed loading language 'chi-sim'
我正在开发 python tesseract 包,示例代码如下:
import pytesseract
from PIL import Image
tessdata_dir_config = "--tessdata-dir \"/opt/homebrew/Cellar/tesseract-lang/4.1.0/share/tessdata/\""
image = Image.open("dataset/test.jpeg")
text = pytesseract.image_to_string(image, lang = "chi-sim", config = tessdata_dir_config)
print(text)
我收到以下错误消息:
pytesseract.pytesseract.TesseractError: (1, 'Error opening data file /opt/homebrew/Cellar/tesseract-lang/4.1.0/share/tessdata/chi-sim.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. Failed loading language 'chi-sim' Tesseract couldn't load any languages! Could not initialize tesseract.')
根据我的理解,错误发生在读取文件chi-sim.traineddata
(代表简体中文)时,我将在下面解释我为解决此问题所做的尝试。
- 我的开发环境是M1 macOS,我从Homebrew安装了
tesseract
和tesseract-lang
。我很确定上面指定的路径正是源文件所在的位置,因为当我调用
print(pytesseract.get_languages(config = ""))
我打印了一长串语言,包括 chi-sim。
- 此外,如果我们只使用英文而不是中文,下面的代码可以成功识别图像中的英文文本:
text = pytesseract.image_to_string(image)
- 我尝试以多种方式指定环境变量
TESSDATA_PREFIX
,包括:
在原始代码中使用 config
参数。
在PyCharm中添加全局环境变量。
在代码中添加以下行
os.environ["TESSDATA_PREFIX"] = "tesseract/4.1.1/share/tessdata/"
- 在终端
中将以下行添加到 bash_profile
export TESSDATA_PREFIX=/opt/homebrew/Cellar/tesseract-lang/4.1.0/share/tessdata/
但不幸的是,none 这些作品。
- 好像我的文件
chi-sim.traineddata
不知何故坏了,所以我直接从 GitHub (https://github.com/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata) 下载了经过训练的数据文件,点击“下载”按钮在右侧,并将下载的文件放在 tesseract-lang 和原始 tesseract 目录中(eng.traineddata
所在的目录)。是的,我都试过了,但都不行。
关于这个问题,有什么可能的解决方案吗?
如果我使用 lang="chi_sim"
和 _
而不是 -
,代码在 Linux 上对我有效,因为从服务器下载的文件的名称也为 chi_sim.traineddata
_
而不是 -
.
如果我将文件重命名为 chi-sim.traineddata
,那么我可以使用 lang="chi-sim"
(使用 -
而不是 _
)
我正在开发 python tesseract 包,示例代码如下:
import pytesseract
from PIL import Image
tessdata_dir_config = "--tessdata-dir \"/opt/homebrew/Cellar/tesseract-lang/4.1.0/share/tessdata/\""
image = Image.open("dataset/test.jpeg")
text = pytesseract.image_to_string(image, lang = "chi-sim", config = tessdata_dir_config)
print(text)
我收到以下错误消息:
pytesseract.pytesseract.TesseractError: (1, 'Error opening data file /opt/homebrew/Cellar/tesseract-lang/4.1.0/share/tessdata/chi-sim.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. Failed loading language 'chi-sim' Tesseract couldn't load any languages! Could not initialize tesseract.')
根据我的理解,错误发生在读取文件chi-sim.traineddata
(代表简体中文)时,我将在下面解释我为解决此问题所做的尝试。
- 我的开发环境是M1 macOS,我从Homebrew安装了
tesseract
和tesseract-lang
。我很确定上面指定的路径正是源文件所在的位置,因为当我调用
print(pytesseract.get_languages(config = ""))
我打印了一长串语言,包括 chi-sim。
- 此外,如果我们只使用英文而不是中文,下面的代码可以成功识别图像中的英文文本:
text = pytesseract.image_to_string(image)
- 我尝试以多种方式指定环境变量
TESSDATA_PREFIX
,包括:
在原始代码中使用
config
参数。在PyCharm中添加全局环境变量。
在代码中添加以下行
os.environ["TESSDATA_PREFIX"] = "tesseract/4.1.1/share/tessdata/"
- 在终端 中将以下行添加到
bash_profile
export TESSDATA_PREFIX=/opt/homebrew/Cellar/tesseract-lang/4.1.0/share/tessdata/
但不幸的是,none 这些作品。
- 好像我的文件
chi-sim.traineddata
不知何故坏了,所以我直接从 GitHub (https://github.com/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata) 下载了经过训练的数据文件,点击“下载”按钮在右侧,并将下载的文件放在 tesseract-lang 和原始 tesseract 目录中(eng.traineddata
所在的目录)。是的,我都试过了,但都不行。
关于这个问题,有什么可能的解决方案吗?
如果我使用 lang="chi_sim"
和 _
而不是 -
,代码在 Linux 上对我有效,因为从服务器下载的文件的名称也为 chi_sim.traineddata
_
而不是 -
.
如果我将文件重命名为 chi-sim.traineddata
,那么我可以使用 lang="chi-sim"
(使用 -
而不是 _
)