Mac通过CLI使用Tesseract指定英文语言包时提示无法打开文件的问题
Mac通过CLI使用Tesseract指定英文语言包时提示无法打开文件的问题
嘿,我看你遇到的这个问题其实是对Tesseract的-l参数用法理解错啦,咱们一步步来解决:
首先还原下你的操作场景:
- 你用Homebrew安装了Tesseract CLI
- 运行
tesseract --list-langs后,确认了/opt/homebrew/share/tessdata/目录下有eng(英文)语言包 - 但执行命令
tesseract fname.png >> "./fname.txt" -l /opt/homebrew/share/tessdata/eng时,出现了Can't open /opt/homebrew/share/tessdata/eng的报错,还输出了Tesseract的用法说明
问题根源
Tesseract的-l参数只需要传入语言代码(比如eng)就可以了,不需要指定完整的文件路径!它会自动去默认的tessdata目录(也就是你看到的/opt/homebrew/share/tessdata/)里寻找对应的语言包文件(实际是eng.traineddata),你额外加了路径反而让它找不到正确的文件了。
另外还有个小细节:Tesseract的命令格式是tesseract 输入图片路径 输出文件前缀 [选项],你用>>追加输出的方式不太符合它的标准用法,直接指定输出文件名就好,它会自动生成对应的.txt文件。
正确的命令
把命令改成下面这样就可以正常运行了:
tesseract fname.png "./fname.txt" -l eng
如果希望每次生成新的fname.txt覆盖旧文件,直接用上面的命令就好;要是想追加内容,可以之后用cat命令把识别结果追加进去,不过一般识别单张图片直接生成新文件更合适。
运行这个命令后,Tesseract就会调用英文语言包处理你的图片,把识别结果写入fname.txt里啦~
备注:内容来源于stack exchange,提问作者user254694
相关产品推荐
相关产品推荐

