gpt4 book ai didi

java - 苔丝4J : How to use ResultIterator?

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:05 24 4
gpt4 key购买 nike

我正在将 OCR 应用程序从 c++ 转换为 java。使用 Tess4J 我想获取每个单词的边界框。然而,显然 TessResultIterator 没有提供任何方法。所以我想知道是否有可能以某种方式获取这些数据?

这是我当前的代码:

TessBaseAPI api = TessAPI1.TessBaseAPICreate();
TessAPI1.TessBaseAPIInit3(api, path, lang);
TessAPI1.TessBaseAPISetPageSegMode(api, TessAPI1.TessPageSegMode.PSM_AUTO);
TessAPI1.TessBaseAPISetImage(api, img, w, h, bpp, bpp*w);
TessAPI1.TessBaseAPIGetUTF8Text(api);
TessResultIterator it = TessAPI1.TessBaseAPIGetIterator(api);

在 C++ 中我可以继续这样:

char* text = it->GetUTF8Text(tesseract::RIL_WORD); 
int left, top, right, bttm;
it->BoundingBox(tesseract::RIL_WORD, &left, &top, &right, &bttm);

最佳答案

你能尝试下面的代码片段吗?我没有真正彻底地测试它。

TessResultIterator ri = TessAPI1.TessBaseAPIGetIterator(api);
TessPageIterator pi = TessAPI1.TessResultIteratorGetPageIterator(ri);
String str = TessAPI1.TessResultIteratorGetUTF8Text(ri, TessPageIteratorLevel.RIL_WORD);
IntBuffer leftB = IntBuffer.allocate(1);
IntBuffer topB = IntBuffer.allocate(1);
IntBuffer rightB = IntBuffer.allocate(1);
IntBuffer bottomB = IntBuffer.allocate(1);
TessAPI1.TessPageIteratorBoundingBox(pi, TessPageIteratorLevel.RIL_WORD, leftB, topB, rightB, bottomB);
int left = leftB.get();
int top = topB.get();
int right = rightB.get();
int bottom = bottomB.get();

关于java - 苔丝4J : How to use ResultIterator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14794551/

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