如何在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:\Users\Administrator\.cppan\storage\lib\ddbdbe4c\Release中將pvt.cppan.demo.danbloomberg.leptonica-1.74.4.lib,復制到tesseract-vs2015\lib文件夾下。

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.\n");

        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:\n%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 "tesseract\baseapi.h"  
  3. #include "tesseract\strngs.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. }  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM