gpt4 book ai didi

c++ - Tesseract:如何导出文本和边界框?

转载 作者:太空狗 更新时间:2023-10-29 21:48:10 26 4
gpt4 key购买 nike

我想将文档图像转换为 XML,并导出在页面中找到特定单词的位置。为了访问边界框信息,可以使用 tesseract 的布局分析:

 tess.SetImage(...); 
tess.SetPageSegMode( tesseract::PSM_AUTO_OSD);
tesseract::PageIterator* it = tess.AnalyseLayout();
while(it->Next(tesseract::RIL_WORD)
{
int top, bottom, left, right;
it->BoundingBox(tesseract::RIL_WORD, &left, &top, &right, &bottom);

}

然而,那时我不知道边界框的实际内容,通过执行以下代码,对当前图像执行 OCR,因此 text 包含整个文本页面。

 tess.Recognize(0); 
std::string text = tess.GetUTF8Text();

目前我暂时将所有边界框存储在一个 vector 中。对于每个框,我从原始图像中剪下一个子图像,并对每个边界框执行 OCR。基本上这是可行的,但是当我将结果与 Tesseract 命令行工具进行比较时,会出现更多的 OCR 错误。

因此我想知道如何逐字遍历 OCR 结果并获得相应的边界框。

最佳答案

tess.Recognize(0);

PAGE_RES_IT resultIter(page_res_);

for (resultIter.start_page(false); resultIter.block() != NULL; resultIter.forward())
{

WERD_RES* wordResult = resultIter.word();
WERD_CHOICE* word = wordResult->best_choice;

TBOX& box = wordResult->word->bounding_box();
}

关于c++ - Tesseract:如何导出文本和边界框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com