17

我一直在寻找用于在网络上的图像中识别数字的资源。我发现许多链接提供了大量关于该主题的资源。但不幸的是,这比帮助更令人困惑,我不知道从哪里开始。

我有一张图片,里面有 5 个数字,不受干扰(没有验证码或类似的东西)。数字是白色背景上的黑色,以标准字体书写。

我的第一步是将数字分开。我目前使用的算法非常简单,它只是检查一列是否完全是白色的,因此是一个空格。然后修剪每个字符,使其周围没有白色边框。这工作得很好。

但现在我坚持对数字的实际识别。我不知道猜测正确的最佳方法是什么。我不认为直接与字体进行比较是一个好主意,因为如果数字仅略有不同,它将不再起作用。

谁能给我一个关于这是如何完成的提示?

这个问题无关紧要,但我将在 C# 或 Java 中实现它。我找到了一些可以完成这项工作的库,但我想自己实现它,以学习一些东西。

4

1 回答 1

14

为什么不考虑使用诸如 Tesseract 之类的开源 OCR 引擎呢?

http://code.google.com/p/tesseract-ocr/

Tesseract 的 C# 包装器

http://www.pixel-technology.com/freeware/tessnet2/

正方体的 Java 包装器

http://sourceforge.net/projects/tessocrinjava/

虽然您可能不会考虑使用第三方库来自己实现它,但仅集成第三方工具就需要做大量工作。还要记住,看似简单的事情(识别数字 5 和数字 6)通常非常复杂;我们正在谈论成千上万行复杂的代码。至少,看看 tesseract 的源代码,它会给你一个充分的理由想要利用第三方库。

这是另一个 SO 问题,它将为您提供有关所涉及算法的一些想法:https ://stackoverflow.com/questions/850717/what-are-some-popular-ocr-algorithms

于 2010-03-09T19:26:35.600 回答