如何使用MacPorts安装tesseract来进行简单的OCR识别
希望文章能给到你启发和灵感~
如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~
阅读指南
- 开篇说明
- 一、基础环境说明
- 1.1 硬件环境
- 1.2 软件环境
- 二、下载MacPorts
- 三、如何使用macPorts安装Tesseract
- 四、 配置并使用Tesseract
- 五、最后的最后
开篇说明
本篇
只针对mac系统
的小伙伴,具体问题是在我想在本地部署安装tesseract
,如果我们想使用tesseract的OCR识别
的话,我们不单单要在python中引入pytesseract
等第三方库,还需要在本地环境中配置tesseract,并且如果你还需要下载你所要识别的语言包
才能完成解析;于是第一个想到的就是使用homebrew 安装了;但是遇到下面的问题;
【问题一】:一开始我使用homebrew进行下载的,即:brew install tesseract,首先提示很多依赖无法下载的问题,首先定位的是系统版本的问题,可我并不太想升级系统;
【问题二】:除去升级不说,我第二想着那先把他对应的依赖包下载看看,结果也是安装不成功;或许就是系统版本和homebrew的各种问题吧;
于是最后使用Macports再试试水;
一、基础环境说明
考虑环境因素,大家适当的对比自己的软硬件环境情况分析~请仔细阅读硬件、软件环境
1.1 硬件环境
MacOS Monterey 版本 12.7.8 Apple M1
1.2 软件环境
编译环境:Java 1.8.0_171
, homebrew 4.3.23-53-g29c22e0
二、下载MacPorts
MacPorts 是一个开源的软件包管理系统
,专为 macOS 设计
,用于简化软件的安装、管理和更新。它提供了一个命令行工具 port,用户可以通过这个工具轻松地安装、卸载和管理各种软件包,后面会专门出一个关于MacPorts的使用方式;
下载地址:https://www.macports.org/install.php
这里根据我们电脑的系统版本来选择安装对应的包即可;
注:在进行本地安装时,最后会长时间卡在等待执行脚本那里,继续等就好,这块我这里会比较慢,不确定是不是都这样,大概有个20分钟左右
三、如何使用macPorts安装Tesseract
提示:使用 macports 安装 Tesseract OCR:
sudo port install tesseract
// 然后验证是否安装成功
输入 tesseract --version
输出类似上图的结果,就代表成功了;
Tesseract 需要语言数据包才能识别特定语言的文本。你可以安装多个语言数据包。例如,安装英语和藏文的语言数据包:
sudo port install tesseract-lang
语言包安装完后,我们可以通过下面命令来检查是否生成语言包:
ls /opt/local/share/tessdata/
通常语言包的路径都是在/opt/local/share/tessdata下,以*.traineddata作为文件名;有看到我们刚刚下载的对应的文件就是成功的;或者你可以输入也能直接查看语言包当前有哪些:
tesseract --list-langs
语言包可以根据自己实际中应用需要去下载对应的即可;可以在github找到;
https://github.com/tesseract-ocr/tessdata_best/
我这里因为觉得每次都去下载很慢并且麻烦,就干脆一次性下载全部了;也就1.3多GB吧=-=;我们只需要将语言包都放在上文中说的/opt/local/share/tessdata目录下即可;
四、 配置并使用Tesseract
为了让系统能找到Tesseract库和语言包,我们还需要在环境变量中进行配置:
这里输入编辑环境变量:
vi ~/.zshrc
// 添加,这个路径通常是这个,如果你有另外指定,就按照自己的指定的来
export TESSDATA_PREFIX=/opt/local/share/tessdata
// 保存文件后,执行让环境生效
source ~/.zshrc
OK, 接着我们就能在我们python代码中简单的进行一些识别文字的操作了;例如这里我是用的bod.traineddata的语言包来识别图片中的藏文;
language = 'bod' # 藏文# 进行 OCR 识别
text = pytesseract.image_to_string(image, lang=language)# 输出识别结果
print(text)
五、最后的最后
这里我并没有试过升级系统,不确定是否是因为系统版本的问题导致我的homebrew无法安装OCR库,至少我的homebrew已经是最新的版本了;也有可能是其他环境共同作用的原因,有试过用homebrew安装成功的可以交流一下;