微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

宏和分析图像

如何解决宏和分析图像

我不确定这是否适合提出这样的问题。如果我在这里发帖有误,请在其他地方转给我。

我正在尝试实现一个解决开锁小游戏的程序。这是小游戏的演示:https://www.youtube.com/watch?v=5qbjMwJtTxs&ab_channel=grantmartin

小游戏的工作方式是这样的:你左右移动鼠标来重新定位,按住 f 来开锁。开锁时锁旋转得越远,您就越接近“最佳位置”。这个“甜蜜点”的大小取决于您选择的锁类型(基本、中级或高级)。一旦您在最佳位置完全旋转锁,锁就会解锁并完成小游戏。但是,如果您的时间用完或您的开锁器坏了(如果您在无法进一步旋转的地方按住 f 的次数过多或时间过长,就会发生这种情况),您将输掉小游戏。

我的实施计划如下:

使用宏点击锁最左侧的 f。如果锁不旋转,请将鼠标向右移动特定量。这个数量取决于被撬开的锁,因为它会略小于“甜蜜点”的大小。继续向右移动鼠标并点击 f 直到锁定旋转一些。

找到锁旋转的位置后,测量它在该位置旋转了多远。考虑到这个数量,应该存在一个方程式,它告诉我需要将鼠标移动多远才能落在“最佳位置”上。我将通过反复试验/调整找到这个等式。一旦等式中的数量相等,脚本将首先尝试将鼠标向右移动相等的数量。如果这让它变得更糟(没有旋转那么多),脚本将尝试左侧。这应该成功解决了小游戏。

为了跟踪锁的旋转/位置,我将使用一个 C# 或 Java dll(我只熟悉两种语言),它不断地截取应用程序的屏幕截图。从屏幕截图中,我需要以某种方式找到锁的位置,最好是通过跟踪钥匙孔的右上角。这是我需要实施建议的地方。

为了移动鼠标并按 f,我将使用宏脚本语言,例如 AutoHotKey。此脚本将处理向右特定增量的移动,并将调用 Java/C# dll 中的方法以了解何时停止(何时开始旋转)。一旦找到它旋转的点,就会调用 Java/C# dll 来找出它旋转了多少。一旦我们有了这个数量(可能以度为单位),它将被插入一个神奇的方程,告诉我我需要移动多远才能达到最佳位置。然后会告诉脚本移动这个距离。

这里是我需要帮助的地方:

我是否使任何实现方法过于复杂?有什么更简单的我缺少的东西吗?

跟踪锁旋转的最佳方法是什么?我将如何去做?如果我的方法看起来合适,我通常会如何实施?

截屏最快的方法是什么?到目前为止,我尝试过的实现每个屏幕截图至少需要 40 毫秒。这可能足够了(大约 25 fps),但我担心分析图像的整个过程会大大减慢速度。

宏增量运动的最精确方法是什么?

非常感谢任何建议:)

tl;博士

我正在尝试创建一个解决这个小游戏的宏:https://www.youtube.com/watch?v=5qbjMwJtTxs&ab_channel=grantmartin

我需要有关如何执行此操作的实施建议。

编辑:非常感谢任何信息:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。