C# 识别图像中的数字

C# 识别图像中的数字,c#,java,image-recognition,number-recognition,C#,Java,Image Recognition,Number Recognition,我一直在网上搜索数字识别的资源。我发现很多链接提供了很多关于这个主题的资源。但不幸的是,这比帮助更令人困惑,我不知道从哪里开始 我有一个5个数字的图像,没有干扰(没有验证码或类似的东西)。数字是白色背景上的黑色,用标准字体书写 我的第一步是把数字分开。我目前使用的算法非常简单,它只检查一列是否完全为白色,从而检查一个空格。然后修剪每个字符,使其周围没有白色边框。这很有效 但现在我被困在实际识别的数字。我不知道猜对的最好方法是什么。我不认为直接与字体进行比较是一个好主意,因为如果数字只相差一点点,

我一直在网上搜索数字识别的资源。我发现很多链接提供了很多关于这个主题的资源。但不幸的是,这比帮助更令人困惑,我不知道从哪里开始

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

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

但现在我被困在实际识别的数字。我不知道猜对的最好方法是什么。我不认为直接与字体进行比较是一个好主意,因为如果数字只相差一点点,那就没用了

有谁能给我一个关于这是怎么做的提示吗


这与问题无关,但我将用C#或Java实现它。我找到了一些可以做这项工作的库,但我想自己实现它,来学习一些东西。

为什么不考虑使用开源OCR引擎,比如Tesseract

C#Tesseract包装器

Tesseract的Java包装器

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


这里还有一个问题可以让你对所涉及的算法有所了解:

谢谢你的提示。事实上,我对C/C++不是很在行,而且有很多代码。我仍然希望不必去尝试一个完整的OCR软件项目,只是为了学习数字识别。这将消除你使用C++的需要。C#wrapper非常直截了当。除非你想成为机器学习和图像优化方面的专家,否则你真的不想尝试推出自己的OCR解决方案。+1 Tesseract太棒了。只要在命令行上调用,您就可以使用任何您想要的语言。您也可以将其作为DLL使用,无需花费太多精力,因此无需命令行。正如他们在发行说明中所说,它是开箱即用的。