C++ Tesseract API,白名单设置为数字,但结果中显示字母

C++ Tesseract API,白名单设置为数字,但结果中显示字母,c++,tesseract,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,

我想使用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的新手,有人能帮我解决问题吗?多谢各位


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

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

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

所以我建议你做一个简单的重新排序,看看结果如何


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

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

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

所以我建议你做一个简单的重新排序,看看结果如何


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

这可能有用@KumarSaurabh这是否意味着即使只设置了一个数字,也会直接识别低相似度的字母?但我认为将低相似性识别为错误数字更为合理。这可能有用@KumarSaurabh这是否意味着即使只设置了数字,低相似性也将被直接识别为字母?但我认为将低相似性识别为错误数字更为合理。