使用Tesseract进行页面布局分析?

Ped*_*dro 13 c++ ocr tesseract image-processing

Tesseract 3能够执行页面布局分析.但是,我找不到任何有关如何将库用于此类目的的示例代码或文档.我希望这里有人可以解释如何对图像执行布局分析以及如何解析结果数据.

poi*_*rez 10

可以给Tesseract一个页面模式参数(-psm),它可以具有以下值:

  • 0 =仅方向和脚本检测(OSD).
  • 1 =使用OSD自动分页.
  • 2 =自动页面分割,但没有OSD或OCR
  • 3=全自动页面分割,但没有OSD.(默认)
  • 4 =假设一列可变大小的文本.
  • 5 =假设一个垂直对齐文本的统一块.
  • 6 =假设一个统一的文本块.
  • 7 =将图像视为单个文本行.
  • 8 =将图像视为单个单词.
  • 9 =将图像视为圆形中的单个单词.
  • 10 =将图像视为单个字符.

例:

tesseract image.tif image.txt -l eng -psm 0
Run Code Online (Sandbox Code Playgroud)

但是,我不确定是否可以在独立模式下使用布局分析.


Dmi*_*sev 5

首先,初始化TessBaseAPI实例.您可以使用Init()(如果要执行进一步的文本识别)或InitForAnalysePage()(如果您只对文本框感兴趣).

其次,使用设置图像SetImage().

最后,调用AnalyseLayout()get PageIterator为您提供文本框.

tesseract::TessBaseAPI tessApi;
tessApi.InitForAnalysePage();

// tessApi.SetImage(...);

tesseract::PageIterator *iter = tessApi.AnalyseLayout();

// Instead of RIL_WORD you can use any other PageSegMode
while (iter->Next(tesseract::RIL_WORD)) {
    int left, top, right, bottom;

    iter->BoundingBox(
            tesseract::RIL_WORD,
            &left, &top, &right, &bottom
    );
}
Run Code Online (Sandbox Code Playgroud)