大家好,我正在尝试用Java创建一个程序,它可以读取屏幕上的数字,也可以识别屏幕上的图像。我想知道我怎样才能做到这一点?数字的字体始终是相同的。我以前从来没有编写过这样的程序,但我的想法是让程序截取一个屏幕截图,然后用截图图像的一部分覆盖数字的图像,并检查它们是否匹配,对每个数字重复这一过程。如果这是正确的方法,我该如何将其放入代码中呢?
提前感谢您的帮助。
发布于 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/
发布于 2011-03-23 19:41:49
为此,您可以使用神经网络、支持向量机或其他机器学习结构。但它不会完成全部工作。如果你做一个屏幕截图,你会得到一个非常大的图像,你需要在上面找到单个字符。您还需要处理这样一个事实,即相机可能不会直接指向您想要阅读的文本。您可能需要使用一系列算法来锁定图像的正确部分,然后以一种大小变为中性的方式对其进行下采样。
下面是我编写的一个简单的Java applet,它可以完成其中的一些任务。
http://www.heatonresearch.com/articles/42/page1.html
它可以让你在一个相对较大的区域上绘图,并锁定你的字符。然后它就会识别出来。我使用的是字母表,但数字应该更容易些。其中包含了完整的Java源代码。
发布于 2014-05-05 16:47:04
一种更简单的方法是使用模板匹配。如果字体相同,并且/或者大小(以像素为单位)是已知的,那么简单的模板匹配就可以完成这项工作。如果输入的大小未知,您可能必须创建不同比例的图像副本,并在每个比例下进行匹配。具有极值(最高或最低取决于模板匹配的方法)的值是您的结果。Follow this link for details
https://stackoverflow.com/questions/5320765
复制相似问题