zoukankan      html  css  js  c++  java
  • 如何在vs2015中编译并配置tesseract4.0

    1)安装相关软件:

    下载ccpan,把路径放到path(右击电脑,选择“属性”,选择左边的“高级系统设置”,选择“环境变量”,找到“系统变量”里面的“path”,点击“编辑”,选择右边的“新建”,输入如下图1)。(我把cppan.exe放到c:cppan)

    图1

     

    2)安装cmake(我选择类似自动安装的方式)

    3)下载tesseract和leptonica-1.74:

    将下载后的tesseract解压后在文件夹搜索框中搜索所有.h文件,新建一个文件夹命名为tesseract-vs2015并在该文件夹中新建一个文件夹命名为tesseract,将上述得到的.h文件复制到里面。

    将下载的leptonica解压后在文件夹搜索框中搜索所有.h文件,在文件夹tesseract-vs2015中新建一个文件夹命名为leptonica,将上述得到的.h文件复制到里面。

    4)打开cmd窗口。

    红色框即为我在cmd中输入的代码。

    图2

     

    图3

     

    5)编译sln文件

    打开tesseract/win64/,找到tesseract.sln,用vs2015打开,选择release,x64,如下图4.再选择build,选择build solution,如下图5。

    图4

     

    图5

     

     

    6)修改编码错误:

    在vs的错误列表里双击错误的文件后,单击 文件-高级保存选项修改编码方式为:简体中文GB2312-代码页936

    7)重新生成

      通过第六步后单击重新生成解决方案

    8)保存生成的文件:

     通过以上操作后在tesseract/win64/bin下可以看到如下图的.dll文件。

     

    将其中的.dll文件复制,在上述步骤所建tesseract-vs2015文件夹中新建一个文件夹并命名为bin并将刚刚复制的.dll文件粘贴到当中去。在从tesseract/win64的某个文件夹中找到tesseract400.lib并将其复制,在上述步骤所建tesseract-vs2015文件夹中新建一个文件夹并命名为lib,并将刚刚复制的lib文件粘贴在里面。然后从C:UsersAdministrator.cppanstoragelibddbdbe4cRelease中将pvt.cppan.demo.danbloomberg.leptonica-1.74.4.lib,复制到tesseract-vs2015lib文件夹下。

    9)在vs2015中配置tesseract4.0:

       新建一个空的控制台程序。并找到下图位置

    双击.x64.user出现如下图:

    单击VC++目录,将tesseract-2015/include/tesseract和tesseract-2015/include/leptonica这两个路劲包含在VC++目录下的包含目录下,如图

    再将tesseract-2015/lib路径包含在VC++目录下的库目录中。在单击链接器-输入,将tesseract-2015/lib中的两个lib文件的名字添加到附加依赖项中。如图;

    最后把tesseract-2015/bin文件夹路径放到系统的环境变量中的path值中即可。

    注:将生成的所有dll文件放在Release目录下,才编译成功。

    11)网络上的测试代码:

    #include<iostream>

    #include <baseapi.h>

    #include<allheaders.h>

    #include <cv.h>

    #include <highgui.h>

    using namespace std;

    int main()

    {

        char *outText;

     

        tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();

        // Initialize tesseract-ocr with English, without specifying tessdata path

        if (api->Init(NULL, "eng")) {

            fprintf(stderr, "Could not initialize tesseract. ");

            exit(1);

        }

     

        // Open input image with leptonica library

        Pix *image = pixRead("D:\opencvlianxi\la\1.jpg");

        api->SetImage(image);

        // Get OCR result

        outText = api->GetUTF8Text();

        printf("OCR output: %s", outText);

     

        // Destroy used object and release memory

        api->End();

        delete[] outText;

        pixDestroy(&image);

     

        return 0;

    }

    api->SetPageSegMode(tesseract::PSM_SINGLE_BLOCK);

    api.SetPageSegMode(tesseract::PSM_AUTO);//设置自动进行版面分析

    api.SetAccuracyVSpeed(tesseract::AVS_FASTEST);//要求速度最快

    api->SetRectangle(30, 86, 590, 100);

    api->Init("/usr/src/tesseract-3.02/", "eng");

     

    1. #include "stdafx.h"  
    2. #include "tesseractaseapi.h"  
    3. #include "tesseractstrngs.h"  
    4.   
    5.   
    6. int _tmain(int argc, _TCHAR* argv[])  
    7. {  
    8.     const char * image = "image.jpg";  
    9.       
    10.     tesseract::TessBaseAPI  api;  
    11.     api.Init(NULL, "eng", tesseract::OEM_DEFAULT);  
    12.     api.SetVariable( "tessedit_char_whitelist", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" );  
    13.   
    14.     STRING text_out;  
    15.     if (!api.ProcessPages(image, NULL, 0, &text_out))  
    16.     {  
    17.         return 0;  
    18.     }  
    19.   
    20.     printf(text_out.string());   
    21.   
    22.     return 0;  
    23. }  
  • 相关阅读:
    获取路径的方式
    读取XML文件(XmlNode和XmlElement区别)
    jQuery 选择器大全
    JS中Null与Undefined的区别
    浅谈JS中的!=、== 、!==、===的用法和区别
    sql面试 查找每个班级的前5名学生(取分类数据的前几条数据)
    C#动态方法调用
    C# 匿名对象(匿名类型)、var、动态类型 dynamic——实用之:过滤类属性、字段实用dynamic
    前言2
    2019-1-17 前言 C#高级编程(第11版)
  • 原文地址:https://www.cnblogs.com/supercxm/p/9049798.html
Copyright © 2011-2022 走看看