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,白名单设置为数字但字母出现在结果中的主要内容,如果未能解决你的问题,请参考以下文章