C++ 使用Tesseract进行页面布局分析?
能够执行页面布局分析。但是,我找不到任何关于如何使用该库实现这些目的的示例代码或文档。我希望这里有人能解释如何对图像执行布局分析以及如何解析结果数据 可以为Tesseract提供一个页面模式参数(C++ 使用Tesseract进行页面布局分析?,c++,image-processing,ocr,tesseract,C++,Image Processing,Ocr,Tesseract,能够执行页面布局分析。但是,我找不到任何关于如何使用该库实现这些目的的示例代码或文档。我希望这里有人能解释如何对图像执行布局分析以及如何解析结果数据 可以为Tesseract提供一个页面模式参数(-psm),该参数可以具有以下值: 0=仅限方向和脚本检测(OSD) 1=使用OSD进行自动页面分割 2=自动页面分割,但没有OSD或OCR 3=全自动页面分割,但没有OSD。(默认) 4=假设一列文本大小可变 5=假设一个统一的垂直对齐文本块 6=假设一个统一的文本块 7=将图像视为单个文本行 8=
-psm
),该参数可以具有以下值:
=仅限方向和脚本检测(OSD)0
=使用OSD进行自动页面分割1
=自动页面分割,但没有OSD或OCR2
=全自动页面分割,但没有OSD。(默认)3
=假设一列文本大小可变4
=假设一个统一的垂直对齐文本块5
=假设一个统一的文本块6
=将图像视为单个文本行7
=将图像视为单个单词8
=将图像视为圆圈中的单个单词9
=将图像视为单个字符10
tesseract image.tif image.txt -l eng -psm 0
但是,我不确定是否可以在独立模式下使用布局分析。首先,初始化
TessBaseAPI
实例。您可以使用Init()
(如果您想执行进一步的文本识别)或InitForAnalysePage()
(如果您只对文本框感兴趣)
其次,使用SetImage()
设置图像
最后,调用AnalyseLayout()
以获得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
);
}
不确定这是否准确地回答了您的问题,但我在这里登陆是为了寻找获得给定输入图像的bbox坐标信息(以及bbox中可识别的文本)的方法。现在可以使用tesseract解决此问题
$> tesseract test.tiff test.txt -l eng -psm 1 tsv
在上面的代码片段中要注意的参数是“psm”和“tsv”“psm”选择页面分割模式,“tsv”生成一个漂亮的表格输出文件,其中包含您在文本图像上需要的所有信息(页面块行号、bbox坐标、置信度、预测文本)(如下所示)
自3.04起有一个选项:
tesseract -c preserve_interword_spaces=1 test.tif test
问题是关于“如何使用库”,而不是独立的可执行文件。
tesseract -c preserve_interword_spaces=1 test.tif test