zoukankan      html  css  js  c++  java
  • [转]VS2015+Tesseract4编译

        很久以前试了下 Tesseract3.x,识别中文的话那效果惨不忍睹,辣眼睛,直接放弃。

       最近听说Tesseract4.x之后加入了机器学习,神经网络学,识别率及运行效率较之前的3.x版本有质的提高,而且可以直接识别一般的验证码。想想就很激动,于是开启了Tesseract4学习之旅。

          万万没想到,Tesseract4.0编译过程很曲折,踩了很多坑。过程中参考了以下两篇博客:

    https://blog.csdn.net/naidoudou/article/details/70225849

    http://www.cnblogs.com/hupeng1234/p/8545371.html

    现记录下过程,如下:

    整个环境为:Tesseract-master4.0 + VS2015 + Win10, 最后编译的是x86的

    *********************************************************************************************************************

    第一步:工具、源码准备

    1.cppan下载,链接为https://cppan.org/client/

        编译过程中相应的支持库是由cppan下载的,我们需要下载cppan并设置其环境变量

       解压后 在系统变量里面选择PATH变量,将cppan.exe所在的文件路径作为环境变量的值  

    2.cmake 下载,链接为https://cmake.org/download/,我用的cmake3.8.0_x86

       为cmake设置环境变量,解压后目录下的bin文件夹的目录地址加载至系统环境变量PATH中,

       与cppan设置环境变量的方法一致。  

    3.Tesseract源码下载,链接为https://github.com/tesseract-ocr/tesseract,我用的tesseract-master

       解压后目录如下:

    注意两个文件:

       cppan.yml :  cppan运行是根据这个文件来执行的

       CMakeLists.txt:   cmake嘛

       另外,VS版本最好是VS2015以上版本。我之前一直用VS2013,在VS2013编译的时候有20000多错误,太让人崩溃了,直接放弃。网上找错误原因的时候,有网友说编译Tesseract4.0需要VS2015以上,本着探索精神,在Tesseract源码文件夹中的cppan.yml文件中似乎找到佐证(英文有点渣,也不知道是否这个意思,如有不对,欢迎指正),如图:

    github上也有一说:

    ***************************************************************************************************************

    第二步开干了:(**********注意网络要好,适当需要fan qiang*************)

    1.cmd,以 *****管理员身份**** 进入命令行终端(重要事情说三遍:管理员身份!管理员身份!管理员身份!)

    2.运行cppan

       进入 解压后的Tesseract文件夹,可以发现有个cppan.yml,

       直接敲入命令:cppan   (如果出现 “no spec file”,就是目录不对,没有找到cppan.yml)

       这是在下载相关的的依赖,下载时间可能很长,需要耐心等待。我这里用了两个小时

       一大堆 downloading ...              //下载

                   unpacking  ...                   //解压

                    cleaning ...       //不知道在作甚???

        完成后,"C:/users/用户名/"目录下有个文件夹".cppan"(下载文件到C盘,这就是为什么要管理员身份的原因),

        里面是一些源文件、库、可执行程序

        “../Tesseract/”下也有个文件夹".cppan",里面是“cppan.h”,“checks.yml”."CMakeLists.txt"等4个文件

    3.cmake编译

       先在Tesseract文件夹下建一个目录"build",并在终端进入"build"目录

       终端敲入命令:cmake ..   (注意后面两个小点点".."不要掉)

    (如果要编译x64版本,命令:cmake .. -G "Visual Studio 14 2015 Win64“)

       中间会出现很多"not found",以为又要凉了,其实没关系的

       只要最后出现"Configure done" "Generate done"就是成功了

       在刚才的“build”目录下就有了“tesseract.sln”

    ***************************************************************************************************************

    第三步:VS2015编译工程(***以管理员身份运行VS***,重要事情说三遍:管理员身份!管理员身份!管理员身份!)

    1.先编译“cppan-d-b-d”项目

       打开sln,解决方案点开“CPPAN TARGETS”->"cppan-d-b-d",右键->"生成"。

    2.编译所有项目

       “ALL_BUILD"右键->"生成“

      【注意1】:1.2步顺序不能乱,好像是其它的工程要依赖“cppan-d-b-d”项目生成的库

      【注意2】:会出现900多个错误,不要慌。错误有两点:

             a.你没有“以管理员身份”运行VS.

             b.字符编码的问题。只需要双击对应的错误,跳转到对应的文件,

                然后点击左上角菜单 “文件选项" 下的"高级保存选项", 选择“GB2312”.保存后再“生成"即可。

                这个过程有点技巧(菜鸡参考):不需要每个错误页都去转编码,从上往下开始,一个文件转换编码后重新生成,

                错误少很多 ,接着如此反复操作十次左右就全部解决了

    3.编译完成后,在“解决方案资源管理器”中点选“解决方案 tesseract”–>“CMakeTargets”–>“INSTALL”,单击右键,

       在出现的菜单中选择“生成”。Debug和release模式下需要分别执行上述步骤。

       然后在“C:/Programe Files(x86)/tesseract/”目录下生成了4个目录"include","lib","bin","cmake"

       (生成文件到C盘,这就是为什么又要管理员身份的原因...)

    到此,编译就算大功告成了   :)

    总结一下,不容易编译成功的原因主要有3点:
    1.网络不好,适当需要FQ。
    2.操作步骤不对或没有以管理员身份编译
    3.字符编码的问题

    2019年5月17日补充说明,网友反映有些版本的cmake会编译不成功:

    不成功有:3.7.2 ,3.10.3

    成功的有:3.8.0 ,3.13.3 ,3.14.2 ,3.14.5

    ***************不管成功与否,欢迎大家反馈留言你使用的cmake版本*************


     

    程序配置与示例请参考下一篇博客:

    https://blog.csdn.net/andylanzhiyong/article/details/81807425


    ---------------------
    作者:andylan_zy
    来源:CSDN
    原文:https://blog.csdn.net/andylanzhiyong/article/details/81746904
    版权声明:本文为作者原创文章,转载请附上博文链接!

  • 相关阅读:
    poj1459(多源点网络流)
    poj 2480
    poj1850和poj1496(组合数)
    poj3252(组合数)
    hdu1452(逆元)
    因子和与因子个数
    poj 2478(欧拉函数打表)
    p3807(lucas定理)
    F-有趣的数字(组合数+逆元)
    《Java并发编程的艺术》Java并发机制的底层实现原理(二)
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725227.html
Copyright © 2011-2022 走看看