• Tesseract-OCR4.0版本在VS2015上的编译与运行(转)


    最近刚开始接触识别库引擎方面的知识,由于项目中需要使用光学识别处理模块,在老师与朋友的推荐下,我开始接触tesseract光学识别库,在最开始从GitHub上下载的源代码进行编译的时候,出现了许多意想不到的问题,为了先完成项目,我借鉴相关博客上针对tesseract3.04以下版本在VS2013上的编译方法,先在VS2013上运行tesseract,然而无法在VS2015上成功编译源代码,这让我一直纠结着,终于在和我们公司的齐工的一次探讨中,我们尝试了一种新的编译方法,测试结果显示编译成功,tesseract成功运行。 
    对于tesseract4.0的编译我将它分为五个步骤: 
    1.预处理部分,下载编译工程所需要的cmkae与cppan软件,并设置相应的环境变量,从GitHub上下载tesseract的相应源代码; 
    2.在解压的tesseract目录下运行cppan,下载一些图片解压缩等需要的lib与dll; 
    3.mkdir build目录,即在tesseract目录下新建一个build文件夹; 
    4.进入build目录,运行cmake,等待10到20分钟,即可生成VS2015项目所需的工程文件; 
    5.在编译成功的环境下,进入build目录下后缀为sln的工程文件,利用VS2015打开; 
    6.编译工程目录下的libtesseract工程文件,这时会出现报错现象,这是由于编程语言编码问题造成的,我们需要修改相应的编码格式,使其生成相应的lib与dll; 
    7.将目录下生成的lib与库文件路径添加到tesseract工程文件下的链接器输入与VC++目录中,点击生成,即可生成相应的.exe文件; 
    8.在我的电脑高级属性环境变量中添加名为TESSDATA_PREFIX的变量,其值为tesseract文件夹下tessdata文件夹的地址。 
    好了到这里我们就算大功告成了。

    接下来我会一步一步的进行操作:

    1预处理部分,下载相应的软件与源代码:

    由于编译过程中相应的支持库是由cppan下载的,我们需要下载cppan并设置其环境变量,cppan的下载地址为: 
    官网网址链接为https://cppan.org/client/ 
    在Windows平台下根据自己电脑的属性选择相应的版本进行下载 
    我下载的是cppan-master-Windows-client.zip文件,解压缩以后就是一个cppan.exe文件,如下图所示: 
    在这里我们将解压缩以后文件夹的名字命名为cppan 
    接下来是设置环境变量,右键点击“我的电脑”,点击属性,在弹出的系统属性对话框中,选择高级,点击进入环境变量,在系统变量里面选择PATH变量,将cppan.exe所在的文件路径作为环境变量的值,这里我们就算是配置好cppan了。 
    然后是下载最新的cmake,并进行配置环境变量: 
    cmake官网下载地址为https://cmake.org/download/ 
    根据电脑的版本选择相应的下载链接
    我的电脑是X64版本的,所以我下载的是Windows win64-x64下的下载链接,即cmake-3.8.0-win64-x64.zip文件,解压缩以后将cmake-3.8.0-rc2-win64-x64目录下的bin文件夹的目录地址加载至系统环境变量PATH中,与cppan设置环境变量的方法一致。 
    预处理的最后一步是从GitHub上下载tesseract4.0的源代码,下载的地址是 
    https://github.com/tesseract-ocr/tesseract 
    在该界面下选择clone or download,如下图所示 
    选择download zip即可下载最新版本的tesseract源代码
    然后我们解压缩,将其中所有的文件复制到我们新建的文件夹tesseract下(我个人觉得tesseract名字短,使用方便)

    2运行cppan,下载相应的支持库

    我使用的win10系统,所以在左下角Windows图标下鼠标右键单击,在弹出的界面中选择WIndows PowerShell管理员(A)选项,在运行cppan过程中,有可能杀毒软件会报错,可以先关闭杀毒软件。 
    将盘符切换到tesseract文件夹所在的盘,即输入相应盘的名称即可,我的tesseract在G盘,我输入的是G:,回车键即进入了G盘,如下图所示: 
    这里写图片描述
    由于我昨天在G盘下才创建了一个tesseract的工程,我们将测试的tesseract放置在E盘下,直接E:即可切换到E盘下,输入命令cd tesseract即可进入tesseract文件夹下,如下图所示: 
    这里写图片描述
    在该目录下,我们继续在Windows PowerShell下运行命令cppan然后回车,等待cppan程序运行,(安装电脑管家的记得在运行此步骤之前关闭电脑管家,不然杀毒软件将cppan识别为病毒会自动退出命令行)如下图所示: 
    由于我昨天已经下载了相应的支持库,所以这里cppan只会读取昨天下载的空间里面的内容,如果之前没有下载过,那么cppan就会自动下载相应的文件,网速快的话,一两分钟就搞定了

    3 tesseract文件夹下新建build文件夹,并进入build文件夹

    在命令行中输入mkdir build即可新建一个build文件夹,然后cd build进入该目录中,如下图所示 
    这时我们就已经进入build目录下啦
    可以在文件夹中查看是否新建了build文件夹,如下图所示: 
    这里写图片描述 
    你看下面是不是已经有了,build文件夹,这个文件夹是用来存放生成的VS2015的项目工程文件

    4 运行cmake进行编译生成工程文件

    我们继续在刚才运行的Windows PowerShell下运行以下命令 
    cmake . . 
    !!!注意后面两个dot不能省略 
    运行情况如下图所示: 
    这里写图片描述 
    你看正在生成关于VS2015的工程文件,做到这里我们可以去喝杯咖啡或者茶休息会了,因为编译时间大概为10到20分钟,具体的情况要看各位的电脑了。 
    这里写图片描述
    到这里我们已经成功生成VS2015的工程文件了,接下来的步骤就是进入VS2015中进行具体的操作啦!

    进入工程文件,编译libtesseract

    这里我们已经成功生成该项目的工程文件了 
    在build目录下找到tesseract.sln文件,用VS2015打开该文件; 
    在菜单中选择生成解决方案的生成选项,由于是第一次进行生成,未进行任何修改,应该会报错的 
    这里写图片描述 
    我们等待它进行生成,这个过程中对CPU的占用率差不多是100%,有可能在运行其他程序时出现卡顿,但这是正常的现象,编译过后就不会出现这种情况了 
    这时出现了错误 
    这里写图片描述
    上图中第一个错误是由于编码原因造成的,我们点击错误,进入生成该错误的文件中 
    这里写图片描述
    在第250到251行出现错误,我们在菜单栏中点击文件目录下的高级保存选项 
    这里写图片描述 
    进入之后,将编码由Unicode(UTF-8无签名)更换为简体中文(GB2312)-代码页936 
    这里写图片描述 
    这里写图片描述 
    然后再进行生成,这时显示已经成功生成 
    这里写图片描述
    然后进入tesseract工程下,右键选择生成 
    这里写图片描述 
    等待片刻后即可成功生成 
    这里写图片描述
    再回到该文件所在的目录中,查找生成的工程文件 
    这里写图片描述 
    你看所有的文件都在此文件夹下面啦,然后我们去配置TESSDATA_PREFIX环境变量

    配置TESSDATA_PREFIX环境变量

    这里写图片描述 
    在tesseract目录中的tessdata文件下应该要下载eng.traineddata文件,这是英文的训练文件,大家按照自己的需要下载需要的文件 
    下载地址是https://github.com/tesseract-ocr/tessdata 
    也可以在后期的项目需要中,训练自己的识别库 
    然后再我的电脑中系统变量中新建一个名为TESSDATA_PREFIX的变量,该变量的值为tessdata文件夹的路径,设置好以后,记得使环境变量生效(ps前面设置环境变量也是要记得使环境变量生效)

    测试生成的目标文件

    我们随便找了一张图片,命名为binary.tiff; 
    这里写图片描述 
    然后运行cmd命令tesseract.exe binary.tiff out 
    这里写图片描述 
    这时已成功生成out.txt 
    打开out.txt文件 
    这里写图片描述 
    这里写图片描述
    这时编译的文件已可以开始进行识别工作,做到这里也算是大功告成了!

  • 相关阅读:
    10.2 查找同一组或分区中行之间的差
    8.7 确定当前记录和下一条记录之间相差的天数
    8.6 计算一年中周内各日期的次数
    8.5 确定两个日期之间的秒、分、小时数
    8.4 确定两个日期之间的月份数或年数
    8.2 计算两个日期之间的天数
    8.3 确定两个日期之间的工作日数目
    8.1 加减日、月、年
    7.13 计算不包含最大值和最小值的均值
    第3章 Python的数据类型 第3.1节 功能强大的 Python序列概述
  • 原文地址:https://www.cnblogs.com/wangbin/p/9063787.html
Copyright © 2020-2023  润新知