Tesseract API,白名单设置为数字但字母出现在结果中

Posted

技术标签:

【中文标题】Tesseract API,白名单设置为数字但字母出现在结果中【英文标题】:Tesseract API, whitelist set as number but letters appear in the result 【发布时间】:2016-02-21 21:40:38 【问题描述】:

我想使用 tesseract 只识别数字。所以我将 tesseract 设置如下:

  tesseract::TessBaseAPI tess;
  tess.SetVariable("tessedit_char_whitelist","0123456789");
  tess.Init(tessdata, "eng", tesseract::OEM_DEFAULT);
  tess.SetImage((uchar*)im.data, im.size().width, im.size().height, im.channels(), im.step1());
  const char* out = tess.GetUTF8Text();

但字母仍然出现在结果中。我是tesseract的新手,任何人都可以帮助找出我的问题吗?谢谢。

顺便说一下,图像有点旋转。

【问题讨论】:

这可能有用***.com/questions/4944830/… @KumarSaurabh 这是否意味着即使设置了唯一的数字,也会直接识别低相似度的字母?但我认为将低相似度识别为错误数字更为合理。 【参考方案1】:

如果您已经弄清楚了,我不是用户,但您的问题可能是您在 Init() 之前调用了 SetVariable()?查看 baseapi.h 中的 SetVariable() 措辞有点自相矛盾:

SetVariable 可以在 Init 之前使用,但设置将在 End() 上恢复为默认值。注意:必须在 Init() 之后调用。仅适用于非初始化变量(初始化变量应传递给 Init())。

所以我建议您进行简单的重新排序,看看效果如何。

免责声明:我没有测试过,所以我不知道是不是这个问题。

【讨论】:

以上是关于Tesseract API,白名单设置为数字但字母出现在结果中的主要内容,如果未能解决你的问题,请参考以下文章

Android Tesseract OCR 7 段数字

如何在 JWT 过滤器中将 api 列入白名单

从字符串中删除所有不在白名单上的字符

如何保护 REST-API?

如何设置 API url,以便只有 IP 白名单客户端可以访问 API,而 Web 应用程序本身仍然可供所有人访问?

tesseract 5.0.0 返回混合数字和字母的无意义结果