识别图像中的数字
我一直在寻找网上图像中数字识别的资源。 我发现许多链接提供了关于该主题的大量资源。 但不幸的是,它比帮助更令人困惑,我不知道从哪里开始。
我有一个包含5个数字的图像,没有受到干扰(没有validation码或类似的东西)。 这些数字在白色背景上是黑色的,用标准字体书写。
我的第一步是分开数字。 我目前使用的算法非常简单,它只检查列是否完全是白色,因此是空格。 然后它修剪每个角色,使其周围没有白色边框。 这非常有效。
但是现在我对这个数字的实际识别感到困惑。 我不知道猜测正确方法的最佳方法是什么。 我不认为直接比较字体是一个好主意,因为如果数字只有一点点差异,那就没有更多的工作了。
任何人都可以给我一个如何做到这一点的暗示吗?
这个问题无关紧要,但我将用C#或Java实现它。 我找到了一些可以完成这项工作的图书馆,但我想自己实施,以便学习一些东西。
为什么不考虑使用Tesseract等开源OCR引擎?
http://code.google.com/p/tesseract-ocr/
用于Tesseract的C#包装器
http://www.pixel-technology.com/freeware/tessnet2/
Tesseract的Java Wrapper
http://sourceforge.net/projects/tessocrinjava/
虽然您可能不会考虑使用第三方库来实现它,但是只需集成第三方工具就可以完成大量的工作。 还要记住,看似简单的事情(识别数字5与数字6)通常非常复杂; 我们谈论成千上万行代码复杂。 至少,看一下tesseract的源代码,它会给你一个很好的理由想要利用第三方库。
这是另一个问题,它会给你一些关于所涉及的算法的想法: https ://stackoverflow.com/questions/850717/what-are-some-popular-ocr-algorithms