【问题标题】:Can i use Equals To (Comparison Operator) for comparing Images in Sikuli?我可以使用等于(比较运算符)来比较 Sikuli 中的图像吗?
【发布时间】:2018-07-04 20:44:09
【问题描述】:

以下代码已被使用。相信是因为比较运算符的原因,才会弹出错误。

我需要匹配一个屏幕截图并与当前图像进行比较。

while(1):
  if (imgA == imgA):
    click(X)                             #Close the Window
  else:
    click(Y)                             #Error Message
    break

【问题讨论】:

  • 我开发了一个基于 Sikuli 的应用程序,该应用程序利用了他们的 Java API。但是,在将图像转换为 Base64 字符串后,我几乎完全使用图像。除其他优点外,它非常适合文件管理。您可以对此进行试验并设置自己的字符串比较标准。

标签: jython sikuli image-compression comparison-operators


【解决方案1】:

您要查找的 Sikuli 关键字是 exists()。查看docs 了解更多详细信息。

为了进一步深入了解您的问题,我会考虑以下内容:

if exists('img_a.png', 10):
    click(x)
else:
    click(y)

这将等待您的屏幕截图 10 秒。一旦检测到该图像,它将移动到 if 块并执行命令。如果 10 秒后找不到图像,它将移动 else 块并执行这些命令。

另外,请注意文档中提到 exists() 支持模式和字符串。您可以通过图像名称调用图像,也可以提供更详细的图案信息。例如:

searchRegion = Region(x, y, w, h)

if searchRegion.exists(Pattern('img_a.png').exact(), 10):
    click(x)
else:
    click(y)

上面的脚本规定了一个要搜索的区域,并检查给定区域内该图像的完全匹配。您可以将 .exact() 更改为 .similar(0.90) 以调整匹配容差。 0.01-0.99 是有效匹配,.exact 和 .similar(0.99) 在功能上是相同的。

【讨论】:

    猜你喜欢
    • 2011-10-16
    • 2023-03-30
    • 2014-06-16
    • 1970-01-01
    • 2018-04-26
    • 2016-12-31
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多