我正在使用 tesseract 来识别序列号。这是可以接受的,存在常见问题,例如错误识别零和“O”、6 和 5、或 M 和 H。
除此之外,这个超正方体还向识别的单词添加了空格,而图像中没有空格。下图被识别为"HI 3H".
这张图片的结果是“FBKHJ 1R1”
因此,tesseract 添加了一个空格,尽管图像中实际上并没有空格。
是否有可能参数化超立方体的间距行为?
Edit
抱歉,忘了补充,我还有包含空格的序列号。所以我无法删除识别的序列号内的所有空格。
例如,下面的序列号中包含空格的图像经过超正方体识别后结果为:J4 F1583BB。除了字符识别错误之外,该图像的空间识别正确。
我的超正方体的实际参数是:
tesseract::TessBaseAPI tess;
tess.Init(NULL, "eng", tesseract::OEM_TESSERACT_ONLY);
tess.SetPageSegMode(tesseract::PSM_SINGLE_BLOCK);
tess.SetVariable("tessedit_char_whitelist",
"ABCDEFGHIJKLMNOPQRSTUVWXYZ012345789");
char* out = tess.GetUTF8Text();
string text = string(out);
Edit
从已经存在的答案中可以看出,例如“J”和“I”之间的空间似乎比其他字符之间的空间多一点。我选择的字体类型是 Monotype 字体。这样做的原因是我认为这有助于超正方体的字符识别。这种等宽字体类型(每个字符具有相同的宽度)的缺点是内核(字符之间的空间)不同。
请参阅以下来源的示例图像Source https://en.wikipedia.org/wiki/Typeface
您认为哪种字体类型会达到更好的识别效果?
调整参数tosp_min_sane_kn_sp
可能有帮助。我通过这样做解决了问题。
如果没有帮助,您可以尝试其他tosp_*
参数,或解决空间源代码“to space.cpp”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)