2016-12-31 44 views
-1

我正在试图制作机器人,它会为我扮演Facebook messenger篮球或足球(因为我真的很糟糕)。我甚至在几年前做了些什么,但是两场比赛都出现了问题。在篮球运动开始时,篮球开始移动得太快,以至于我的计划在计算过程中犯了错误,而在球快速移动的时候,在球场上犯错。我正在使用屏幕碎片的Robot.createScreenCapture(),然后将它保存在BufferedImage中,我正在检查图像中的每个像素,但速度不够快(我也尝试过使用Piano Tiles 2)。我需要更快的方式。Java BufferedImage = Robot.createScreenCapture()not enough enought

+0

**还不够快什么?屏幕截图本身?这是已知的:http://stackoverflow.com/q/646089/3182664,http://stackoverflow.com/q/17665529/3182664,http://stackoverflow.com/q/19843050/3182664和其他人。或者你的分析太慢了?然后告诉我们你是如何做这个“像素检查”的。否则,我们只能猜测。 – Marco13

+0

我不知道什么是不够快,我的程序只是missclick,所以它是要么seraching过程或屏幕截图本身。我只是用循环for循环,这是原始的方式,但它应该更快。 – Konik

回答

0

您不提供有关如何在BufferedImage对象中定位球的详细信息。

,你可以:

  • 改善所谓的对数搜索位置过程的有效性。
  • 使用运动预测技术减少搜索区域。

如果您还没有尝试过这两种方法(您提到'...每个像素...'),我将从第一个开始:通过扫描粗糙的像素来查找球的大概位置网格,然后优化大约位置周围缩小的搜索区域中的位置。

要使用粗糙的网格我的意思是扫描每个第n行和列,其中n将是球的半径或更精确地的sqrt(2 * R * R)

+0

当我制作篮球机器人时,我只检查一行像素,并且速度不够快,所以可能会使屏幕捕捉速度不够快。也许我必须先使用图形卡,但我不知道如何制作像这样的东西。 – Konik