在VS2013 C++工程中运行Tesseract APIExample

       Tesseract在Github中有一项名为APIExample的wiki,该wiki的作用是提供在C++中使用tesseract-ocr API的范例。若这些范例可以正常运行,那么可以认为tesseract-ocr以及相关依赖项已正确安装。本文介绍Tesseract APIExample其中一个范例的正确的打开方式(该方法适用于在opencv工程中使用Tesseract)。

       1. 运行Tesseract APIExample的前序工作

       1.1 在正式尝试本文记录的方案之前,请您确认tesseract-ocr以及相关依赖项已正确安装,安装方法请参考Visual studio 2013中编译Tesseract3.04源码记录

       1.2 本文提及示例的运行环境 win10+VS2013(64)+Tesseract-ocr 3.04.

       1.3 本文假设Tesseract-ocr 3.04的安装路径为D:\ tesseract-build

       1.4 我在尝试编译Tesseract APIExample的过程中参考的内容,感谢原作者:

http://stackoverflow.com/questions/18180824/how-to-implement-tesseract-to-run-with-project-in-visual-studio-2010

http://stackoverflow.com/questions/8153569/tesseract-ocr-how-to-includ-baseapi-h

      2. 部署Tesseract源码编译得到的.h和lib文件

      Tesseract编译安装完成后,在D:\ tesseract-build路径下文件夹结构如下:

catalog of Tesseract

      为了能在VS2013的C++工程中正确的使用tesseract-ocr,我们现在开始对上述文件夹的内容进行一些调整:

      1. 在D:\ tesseract-build\inlcude文件夹下新建tesseract文件夹,该文件夹路径为D:\ tesseract-build\inlcude\tesseract。在D:\ tesseract-build\itesseract源码文件夹中使用搜索功能,找到所有的.h文件,将所有的.h文件copy到D:\ tesseract-build\inlcude\tesseract目录下。

      2. 将D:\Tesseract-Build\tesseract\vs2013\tesseract.sln 编译生成的lib,dll文件拷贝到D:\Tesseract-Build\lib\x64下。编译生成内容所在路径为D:\Tesseract-Build\tesseract\vs2013\bin\x64,生成目录有DLL_Release/DLL_Debug/LIB_Release/LIB_DEBUG,这是个目录下的libTesseract304.lib等等文件。

      3. 部署Tesseract APIExample示例

      3.1 新建一个C++ windows console工程,将范例的源码拷贝到main.cpp中。

      3.2 项目属性—>配置属性–>C/C++–>常规,在“附加包含目录”中添加:

D:\Tesseract-Build\include;D:\Tesseract-Build\include\leptonica;

      3.3 项目属性–>链接器–>常规,在”附加库目录”中添加D:\Tesseract-Build\lib;D:\Tesseract-Build\lib\x64;

      3.4 项目属性–>链接器–>输入,在“附加依赖项”中添加liblept171.lib;libtesseract304.lib;

      3.5 在工程目录下新建文件夹tessdata,到tesseract下载相应的语言文件,copy到tessdata文件目录下。

      3.6 将liblept171.dll, liblept171d.dll, libtesseract304.dll, libtesseract304d.dll文件拷贝至.project同路径的目录下。

      3.7 选取待测试图像,放在工程目录下。将源代码中测试图像的路径更换为此路径。

      若tesseract-ocr以及相关依赖项已正确安装,那此时程序就可以正常运行啦,运行结果如下图所示:

Result of API examples

识别结果中还是有一些很明显的错误。

4. opencv和Tesseract的应用结合

       Github中opencv和opencv_contrib关于Tesseract的issues中有很多人问到如何在opencv工程中使用Tesseract。绝大部分回答都说需要通过Cmake-gui编译Tesseract。经过验证,我在填写Tesseract_INCLUDE_DIR和Tesseract_LIBRARY的值后,configure,始终出现Tesseract:No。opencv在Github的仓库中关于使用Tesseract的issue中只说明了必须要实现configure为“Tesseract:Yes”,但并未说明方法,我也没有找到在configure时实现“Tesseract:Yes”的方法。有了解缘由的同学还请不吝赐教,非常感谢!

Cmake Tesseract

       经过实验验证,按照上述方案配置Tesseract,在opencv工程中即可成功使用Tesseract,下一篇文章我会跟大家一起分享一个opencv和Tesseract联合使用的工程。当然我所说的成功使用可能和issue上说的范例并不是同一件事,有待进一步验证。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Fork me on GitHub