64位OCR:Tesseract4.1+leptonica1.74编译安装步骤详解

本文详细介绍了在64位系统上编译安装Tesseract OCR 4.1和Leptonica 1.74的过程,包括解决第三方图像库依赖问题的方法,以及提供已编译好的库文件下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

64位OCR开源Tesseract4.1+leptonica1.74

(编译安装步骤详解)

本博文的pdf下载地址:

https://download.youkuaiyun.com/download/dcx_dcx/12310340


    最近由于需要OCR技术对生成线上的英文进行识别,在网上搜索后,发现开源的Tesseract ocr效果不错。于是经过几天的艰苦地探索,终于可以使用了。

   由于整个编译过程比较复杂,容易出错地方较多,现把整个过程整理如下,以作备用。


一.所需源码包括:

      1. leptonica1.74,下载地址:

           ● 官网地址:http://www.leptonica.org/download.html

      2. Tesseract4.1,下载地址:

         ● github地址:https://github.com/tesseract-ocr/tesseract/releases

二.编译工具:

       1. Cmake3.16(64位)

       2. Vs2019

三. leptonica编译步骤:

     1. 由于Tesseract使用第三方库leptonica,所以必须先编译安装leptonica.

     2.下载解压leptonica1.74到一个目录,我的是: d:\temp\tesseract_ocr\leptonica-1.74.4

     3. 运行cmake:按下图设置源文件和目标文件夹,然后点击【configure】按钮,进行下一步:

                

     4. 设置configure:

               

    5.多次configure:

          

         第一次configure会出现很多红色信息,那就多次点击【configure】按钮直到红色信息没有为止:

     6. 注意问题:这里要特别要说明,leptonica缺少第三方图像库(jpg,tiff,gif,png等),因此configure完成后会出现,下面的信息:

         

 

         这信息我用了很长时间,搜索了网上的一些介绍方法,都没有解决。个问题,不影响编译,但会影响后面程序的运行。关 于这个问题的解决方法,我后面专门介绍。

    7. 修改DLL和LIB输出文件的位置:(我是安放在d:/leptonica)

        

    8. 生成工程文件:点击【generate】按钮

        

   9. 运行vs2019,打开生成的工程文件:

       

   10. 按下面步骤,设置编译属性

      

       

       

      

   11. 开始编译:

      

   12. 编译成功:

      

     在指定位置,生成我们需要的目标文件夹:

      

 

四. Tesseract编译步骤:

     1. 将下载的tesseract-4.1.1.zip解压到指定目录:D:\temp\test\tesseract-4.1.1

      2. 运行cmake:按下图设置源文件和目标文件夹,然后点击【configure】按钮,进行下一步:

          

     3. 设置configure

         

     4. 多次configure:

                    

             和前面生成leptonica一样,进行多次【configure】,但依然有上图的红色信息出现,这是因为没有cmake没有找到leptonica位置 

      5. 指定leptonica位置:

             

          将上面的项,设置成前面编译leptonica的DLL和LIB文件夹的cmake位置:D:\leptonica\cmake     

           

      6. 去到两个选项:(下面的两个项不要勾选,否则不能正常cmake)

          

        

      7. 再次进行,多次configure:(注意一定要有internet网络,因为要下载很多文件):

            

           经过几次【configure】后,最终出现上面的没有红色报警的界面

      8. 修改DLL和LIB输出文件的位置:(我是安放在d:/tesseract)

          

      9. 生成工程文件:点击【generate】按钮

            

      10.运行vs2019,打开生成的工程文件:

           

     11. 按照下面步骤设置编译属性:

            

           

            

     12. 开始编译

            

   13. 编译成功:

         

             在指定位置生成了,我们需要的目标文件:

                

五. GIF、JPEG、TIFF等第三方图像文件库编译:

      1. 现在我们已经生成所需要的DLL和lib文件,但正如前面(四.6)所说,leptonica的编译生成的leptonica-1.74.4.dll,缺少GIF、JPEG、TIFF等第三方库图形文件,还不能正常使用。调用这个DLL库里的函数,运行中会出现下错误:

       

    2. 这些第三方文件库,我在网上搜索了很长时间,也没有找到很好的解决方案。只好自力更生

    3. 其实这些第三方图像文件库,在进行cmake opencv时(参考本人另外的博文)会生成。因此可以把opencv用cmake生成的这些库文件直接link就可以了。下面的连接是已经编译好的这些库obj文件(64位)和h头文件连接:

https://download.youkuaiyun.com/download/dcx_dcx/12326867

    4. 解压下载的第三方工程库文件到指定的文件夹:

         

    5. 运行vs2019,打开以前生成的leptonica工程文件:

       

    6. 找到environ.h文件:

          

    7. 修改environ.h文件的这个几个宏: 

#if !defined(HAVE_CONFIG_H) && !defined(ANDROID_BUILD) && !defined(OS_IOS)
#define  HAVE_LIBJPEG     1
#define  HAVE_LIBTIFF     1
#define  HAVE_LIBPNG      1
#define  HAVE_LIBZ        1
#define  HAVE_LIBGIF      0
#define  HAVE_LIBUNGIF    0
#define  HAVE_LIBWEBP     0
#define  HAVE_LIBJP2K     0
#endif  /* ! HAVE_CONFIG_H etc. */

修改为:

//这样修改是可以操作jpg,tiff,png图片文件
#define  HAVE_LIBJPEG     1
#define  HAVE_LIBTIFF     1
#define  HAVE_LIBPNG      1
#define  HAVE_LIBZ        1

#if !defined(HAVE_CONFIG_H) && !defined(ANDROID_BUILD) && !defined(OS_IOS)
#define  HAVE_LIBGIF      0
#define  HAVE_LIBUNGIF    0
#define  HAVE_LIBWEBP     0
#define  HAVE_LIBJP2K     0
#endif  /* ! HAVE_CONFIG_H etc. */

    8. 按下面步骤添加第三方图形库obj文件

         

         

          

         

          

        在obj目录下再添加4个目录

           

         点击jpg目录右键:

              

         选择前面解压的第三方图形包里的3rdparty\obj\libjpeg-turbo目录下全部文件:

                 

        这样jpeg所需的obj文件就加到本工程项目里

                

        按此方法,把png,tiff,zlib目录下的obj文件全部添加到工程里:

                 

     8. 添加h头文件:

        复制第三方文件包里3rdparty\include\下所有.h文件到:leptonica-1.74.4解压包下的\temp\test\leptonica-1.74.4\src里

     9. 重新编译vc工程文件:

          

     10.编译成功:

         

     11. 这时生成的leptonica-1.74.4.dll(bin目录下)文件完全可以正常使用

 

六. 64位Tesseract和leptonica编译好的dll、lib库文件及h头文件下载地址:

              https://download.youkuaiyun.com/download/dcx_dcx/12310081

七. 测试代码

      

#include "baseapi.h" 
#include "allheaders.h"
int main()
{
    char* outText;
    tesseract::TessBaseAPI* api = new tesseract::TessBaseAPI();
    // Initialize tesseract-ocr with English, without specifying tessdata path
    if (api->Init("d:/", "eng")) {
        fprintf(stderr, "Could not initialize tesseract.\n");
        exit(1);
    }
    Pix* image = pixRead("d:/test1.jpg");
    api->SetImage(image);
    // Get OCR result
    outText = api->GetUTF8Text();
    printf("OCR output:\n%s", outText);
    // Destroy used object and release memory
    api->End();
    delete api;
    delete[] outText;
    pixDestroy(&image);
    return 0;
}

     测试图片:

     

     识别效果:

          | 2 5 A t

 

完整代码工程下载地址:

       https://download.youkuaiyun.com/download/dcx_dcx/12310109

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值