如何在python中使用tesserocr调用tesseract C++ API

tesserocrTesseract C++ API的 python封装;我们所熟知的pytesseract是tesseract-ocr CLI的python封装,CLI即Command Line Interface。

本文将主要介绍如何在win10+X64+python3.10下安装与使用tesserocr。

参考链接

tesserocr与pytesseract有哪些差异?

1. 因受限于tesseract的CLI,pytesseract可调用的函数有限;而tesserocr可调用的函数(Tesseract C++ API)则丰富很多。

2. pytesseract每一次调用都需要加载和初始化语言文件,在处理图像时会先将图像存入本地硬盘再进行下一步处理,OCR的结果也会先写入文件,再从文件中读出,参考Is there any way of speeding things up如果不需要更改语言文件,在处理不同图片时,tesserocr可以只加载一次语言文件,且不需要将输入图片或者识别结果先写入硬盘。

tesserocr怎样安装?

这里我们只讨论windows10中的安装,如下图所示,可以通过Conda或者通过pip来安装与自己windows和python版本匹配的版本。

但如果我们希望通过pip来安装,但是tesserocr提供的安装版本中没有与我们环境相匹配的版本,这时我们可以根据tesserocr README中的说明自行编译源码,我用了自行编译源码的方式来进行安装。

tesserocr install on windows


接下来记录我在Win10+X64+python3.10的前提下编译源码的细节记录。

编译完成的文件以及使用方法请参考tesserocr_python310 [https://github.com/livezingy/tesserocr_python310]

1. Install Visual Studio Community with C++

2. Install CMake (available here),设置相应环境变量

3. Install Git (available here)

4. 在D盘根目录或者其他任意目录建立临时文件夹temp,用于暂存编译过程中生成的文件。以管理员身份打开命令提示符,切换至目录D:\temp运行以下命令:

5. 在D:\temp目录下建立文件夹project并进入该文件夹运行以下命令,注意这里需要自己电脑中安装的vcvar64.bat的路径。

6. 下载zlib1211 并解压至路径D:\temp\project\zlib1211中,命令提示符运行如下命令

上述编译完成后,zlib1211编译得到的相应文件会分别被安装在D:\temp\bin, D:\temp\include, D:\temp\lib中。

7. 下载lpng1637并解压至路径D:\temp\project\lpng1637中,命令提示符在路径D:\temp\project\lpng1637下运行如下命令:

上述编译完成后,lpng1637编译得到的相应文件会分别被安装在D:\temp\bin, D:\temp\include, D:\temp\lib中。

8. 下载 leptonica,并解压至路径D:\temp\project\leptonica-master>中,命令提示符在路径D:\temp\project\leptonica-master>下运行如下命令:

上述编译完成后,leptonica编译得到的相应文件会分别被安装在D:\temp\bin, D:\temp\include, D:\temp\lib中。

9. 下载tesseract-5.0.1并解压至路径D:\temp\project\tesseract-5.0.1中,命令提示符在路径D:\temp\project\tesseract-5.0.1下运行如下命令:

上述编译完成后,tesseract编译得到的相应文件会分别被安装在D:\temp\bin, D:\temp\include, D:\temp\lib中。

注:有的同学可能会疑惑是否能使用Windows – Tesseract at UB Mannheim安装版本。亲测过不行,因为在后续步骤中编译tesserocr时需要tesseract的inlucde和lib文件夹路径,而安装版本的没有这些文件。

10. 下载tesseract的语言文件tessdata并存放至D:\temp\project\tessdata路径中并设置环境变量。

11.确认tesseract编译安装成功

12.接下来开始下载并编译tesserocr。命令提示符在路径D:\temp\project下运行如下命令:

注意:此时需要到目录D:\temp\project\tesserocr\dist查看并获取生成的.whl的名称,再执行如下命令:

13. 最后将生成的文件拷贝至python的site-packages中。

14.验证python中可以正常调用tesserocr



我们用上面的图片和如下代码来验证tesserocr:

输出如下:

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Fork me on GitHub