我的问题与以下AutoHotkey功能相关(您可能会发现here):
ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile
根据其目的,此功能在屏幕区域搜索图像。
从ImageFile
输入开始,允许使用可选参数:
* n (变体):指定 n 0到255之间的数字(包括0和255),以指示强度的任一方向允许的变化深度数每个像素颜色的红色,绿色和蓝色分量。例如,* 2将允许两种变化。如果图像的颜色略有不同或者ImageFile使用的格式(如GIF或JPG)无法准确表示屏幕上的图像,则此参数很有用。如果指定255个变体色调,则所有颜色都将匹配。默认值为0 shades。
到目前为止,我总是被迫“校准”该参数进行多次试验,直到找到所选图像:太高的值将一直返回ErrorLevel = 0
,而太低的值将始终返回ErrorLevel = 1
返回ImageSearch
,当然这两个都不是您对脚本的期望。
我的问题是:找到 * n 的“正确”值的最准确有效的方法是什么,即 * n 的最小值i = 1
Loop
{
ImageSearch, OutputVarX, OutputVarY, 177, 645, 1150, 686, *%i% C:\...\MyImage.png
i := i + 1
;MsgBox, %i%
if (ErrorLevel = 0)
{
MsgBox, %i%
break
}
}
Return
在搜索过程中以非常高的置信度(99%或更高)不会失败?
尝试在屏幕上找到以下图像:
考虑以下情况:这些不是出现或消失的图像:它们只是修改它们的亮度(上面附带的是“暗”版本);这意味着太高的 * n 值当然会使脚本始终找到它们,即使它们的亮度很高。
根据我的试验, * n 的值从100到125非常好,但如果我不知道如何准确校准该值,我无法确定。
我试图制作像这个脚本
这样的东西{{1}}
但这似乎不起作用。
答案 0 :(得分:1)
我做了一个大约2年前完成此功能的功能
我称之为VariemClick
我在flash游戏中找到了多个已建成的建筑物。
为什么?因为在开始时,我使用的图像变化,在Flash游戏中找到了图像,但它只工作了一次或几次然后下次没什么,所以我试图设置使用过的变化,只是让它找不到第一个图像,所以我需要一些方法来先,使用低变化然后多一点等等,但如果它有两个高,它只是发现任何事情,所以最大变化。
现在功能将从低位开始,然后在给定的最小/最大值内上下设置允许的变化,直到设定的尝试次数,然后给出一个列表,其中包含有关找到的图像和使用的变化的信息。