天天看點

Tesseract-OCR編譯及ViewerDebugging使用

       OCR(Optical Character Recognition):光學字元識别,是指對圖檔檔案中的文字進行分析識别,擷取的過程。

一、簡介

       Tesseract-OCR依賴圖像庫Leptonica。 Leptonica是一個開源的圖像處理和圖像分析庫。它主要包括的操作有:位圖操作、仿射變換、形态學操作、連通區域填充、圖像變換及像素掩模、融合、增強、算術運算等操作。

       在使用Leptonica的時候,它依賴于開源的zlib、libjpeg、libpng、libtiff、giflib。

(1)zlib是一個很好的壓縮、解壓縮庫。它的license是zlib授權,類似BSD。

(2)libjpeg是一個完全用C語言編寫的庫,包含了被廣泛使用的JPEG解碼、JPEG編碼和其它的JPEG功能的實作。它的license類似BSD。

(3)libpng是官方的PNG參考庫,它支援幾乎所有的PNG功能,它也是可擴充的。它使用zlib庫作為壓縮引擎。它的license是permissive free software license,類似BSD。

(4)libtiff是一個用來讀寫TIFF檔案的開源庫,它依賴于libjpeg和zlib。它的license是BSD。

(5)giflib是一個讀、寫GIF圖像的開源庫,它的license類似BSD。

二、編譯環境搭建

1、系統平台:windows10  -   VS2013

2、Leptonica編譯,可以直接從以下路徑下載下傳對應的VS版本:

https://github.com/charlesw/tesseract-vs2012

https://github.com/tesseract4java/tesseract-vs2013

      載入相應的VS後,編譯出對應的庫

Tesseract-OCR編譯及ViewerDebugging使用

        編譯完成之後,會産tesseract-vs2013-master目錄下生産一個buidl目錄,build\lib\Win32下的庫就是我們所需的各種庫。

3、Tesseract-OCR

下載下傳位址:https://github.com/charlesw/tesseract-vs

把 tesseract-vs2013-master/release 下面的include, lib目錄整體複制到:\tesseract-ocr,複制好的目錄結構如下:

.. /tesseract-ocr/

+---include/

+---lib/

+---tesseract-vs-master/

+---tesseract-vs2013-master/

然後就可以進行編譯了,接下來就可以進行驗證了。

【測試】

1、指令行,執行:tesseract.exe dst2.png out

Tesseract-OCR編譯及ViewerDebugging使用

out就是輸出的檔案,共檢測到49個檔案。

三、ViewerDebugging調試工具  

       首先,在tesseractmain.cpp檔案中,加入以下代碼:

if (!renderers.empty()) {
    if (banner) PrintBanner();

	//加入的調試資訊
	api.SetVariable("tessedit_dump_pageseg_images", "true");    //show no lines and no image picture
	api.SetVariable("textord_show_blobs", "true");  //show blobs result
	api.SetVariable("textord_show_boxes", "true");  //show blobs' bounding boxes
	api.SetVariable("textord_tabfind_show_blocks", "true"); //show candidate tab-stops and tab vectors
	api.SetVariable("textord_tabfind_show_reject_blobs", "true");   //show rejected blobs
	api.SetVariable("textord_tabfind_show_initial_partitions", "true"); //show initial partitions
	api.SetVariable("textord_tabfind_show_partitions", "1");    //show final partitions
	api.SetVariable("textord_tabfind_show_initialtabs", "true");    //show initial tab-stops
	api.SetVariable("textord_tabfind_show_finaltabs", "true");  //show final tab vectors
	api.SetVariable("textord_tabfind_show_images", "true"); //show image blobs

    bool succeed = api.ProcessPages(image, NULL, 0, renderers[0]);
    if (!succeed) {
      fprintf(stderr, "Error during processing.\n");
      exit(1);
    }
           

其次, 必須要生成ScrollVIew.jar包才能觸發ViewerDebugging工具。在源碼的java目錄下有ScrollView源碼,但是沒有對于的jar包,而ScrollView.jar需要依賴以下的jar包:

piccolo2d-core-3.0.jar

piccolo2d-extras-3.0.jar

       下載下傳後(請點選),就可以進行調試了。效果如下:

Tesseract-OCR編譯及ViewerDebugging使用

繼續閱讀