c – Tesseract虚假空间识别

c – Tesseract虚假空间识别,第1张

概述我正在使用tesseract来识别序列号.这是可接受的,常见的问题,如错误识别零和“O”,6和5,或M和H存在. 除此之外,这个tesseract为识别的单词添加了空格,图像中没有空格.以下图像被识别为“HI 3H”. 此图片导致“FBKHJ 1R1” 因此,tesseract增加了一个空间,尽管图像中没有真正的空间. 是否有可能参数化tesseract的间距行为? 编辑 对不起,忘了添加,我也有 我正在使用tesseract来识别序列号.这是可接受的,常见的问题,如错误识别零和“O”,6和5,或M和H存在.
除此之外,这个tesseract为识别的单词添加了空格,图像中没有空格.以下图像被识别为“HI 3H”.

此图片导致“FBKHJ 1R1”

因此,tesseract增加了一个空间,尽管图像中没有真正的空间.
是否有可能参数化tesseract的间距行为?

编辑

对不起,忘了添加,我也有包含空格的序列号.所以我无法删除识别出的序列号中的所有空格.

例如,在将tesseract识别为J4 F1583BB之后,在序列号中包含空格的以下图像结果.除了对字符的识别是错误的,用该图像识别空间是正确的.

我的tesseract的实际参数是:

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);

编辑

从已经存在的答案中可以看出,例如“J”和“I”之间的空间似乎比其他字符之间的空间要小得多.我选择的字体类型是Monotype字体.原因是我想,这有助于确定字符识别.这种Monospace字体类型的缺点是每个字符具有相同的宽度,即内核(字符之间的空格)不同.
请参阅以下源Source的示例图像

您认为哪种字体类型会获得更好的识别效果?

解决方法 调整参数tosp_min_sane_kn_sp可能会有所帮助.我通过这样做解决了这个问题.

如果它没有帮助,你可以尝试其他tosp_ *参数,或解决空间源代码“tospace.cpp”

总结

以上是内存溢出为你收集整理的c – Tesseract虚假空间识别全部内容,希望文章能够帮你解决c – Tesseract虚假空间识别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1241724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存