首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >光学字符识别

光学字符识别
EN

Stack Overflow用户
提问于 2011-03-16 11:33:57
回答 3查看 2.1K关注 0票数 0

大家好,我正在尝试用Java创建一个程序,它可以读取屏幕上的数字,也可以识别屏幕上的图像。我想知道我怎样才能做到这一点?数字的字体始终是相同的。我以前从来没有编写过这样的程序,但我的想法是让程序截取一个屏幕截图,然后用截图图像的一部分覆盖数字的图像,并检查它们是否匹配,对每个数字重复这一过程。如果这是正确的方法,我该如何将其放入代码中呢?

提前感谢您的帮助。

EN

回答 3

Stack Overflow用户

发布于 2011-03-16 11:38:51

你总是可以训练一个神经网络来帮你做到这一点。它们有时会变得相当准确。如果你使用像Matlab这样的工具,它实际上已经具备了这样的功能。显然,有一个面向java的神经网络库(http://neuroph.sourceforge.net/),尽管我从未亲自使用过它。

这里有一个关于使用neuroph的教程:http://www.certpal.com/blogs/2010/04/java-neural-networks-and-neuroph-a-tutorial/

票数 0
EN

Stack Overflow用户

发布于 2011-03-23 19:41:49

为此,您可以使用神经网络、支持向量机或其他机器学习结构。但它不会完成全部工作。如果你做一个屏幕截图,你会得到一个非常大的图像,你需要在上面找到单个字符。您还需要处理这样一个事实,即相机可能不会直接指向您想要阅读的文本。您可能需要使用一系列算法来锁定图像的正确部分,然后以一种大小变为中性的方式对其进行下采样。

下面是我编写的一个简单的Java applet,它可以完成其中的一些任务。

http://www.heatonresearch.com/articles/42/page1.html

它可以让你在一个相对较大的区域上绘图,并锁定你的字符。然后它就会识别出来。我使用的是字母表,但数字应该更容易些。其中包含了完整的Java源代码。

票数 0
EN

Stack Overflow用户

发布于 2014-05-05 16:47:04

一种更简单的方法是使用模板匹配。如果字体相同,并且/或者大小(以像素为单位)是已知的,那么简单的模板匹配就可以完成这项工作。如果输入的大小未知,您可能必须创建不同比例的图像副本,并在每个比例下进行匹配。具有极值(最高或最低取决于模板匹配的方法)的值是您的结果。Follow this link for details

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5320765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档