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

时间:2015-11-19 16:17:47

标签: c++ tesseract

我想使用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的新手,任何人都可以帮助解决我的问题?谢谢。

顺便说一下,图像稍微旋转一下。

1 个答案:

答案 0 :(得分:2)

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

  

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

所以我建议你做一个简单的重新排序,看看它是如何运作的。

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