【问题标题】:Sikulix cannot find target imageSikulix 找不到目标图像
【发布时间】:2017-04-05 18:08:53
【问题描述】:

我正在使用 Sikulix.jar 在我的项目中搜索图像。我的代码如下:

Finder f;
Match m;
Points2D coords = new Point2D.Double(-1, -1);
try {
    f = new Finder(ImageIO.read(new File("my_large_image.png")));
    f.find(ImageIO.read("my_sub_image.png"));
    if (f.hasNext()) {
        m = f.next();
        coords.setLocation(m.getTarget().getX(), m.getTarget().getY());
    }
} catch (IOException e) {}

要找到的图像只是大图像的一部分。但是坐标总是返回 (-1, -1)。对实施有任何帮助吗?谢谢。

11/25 更新 我可能找到了解决方案,但我不知道它是否正确。当我缩小我的测试大图像(从 1080*1920 到 540*960)时,可以找到该图像。但是相似度是0.66。

【问题讨论】:

  • 这是使用 Sikuli 方法的一种非常不寻常的方式。你这样使用它有什么特定的原因吗?
  • @EugeneS 这是因为我想在我的 android 自动化系统中使用 Sikuli。那么通常的“屏幕”方式不适合这种情况......
  • 我明白了。你还能使用 Regions 吗?
  • @EugeneS 我可以通过将相似度值为 0.5 的 Pattern 对象传递给 find 函数来使其工作。但是目标结果离正确的位置很远。

标签: opencv sikuli sikuli-script


【解决方案1】:

就像快速修复一样。您可以将鼠标悬停在图像的匹配部分上,然后抓取指针的坐标。

【讨论】:

  • 是的,我可以手动执行此操作,但我认为 Sikulix 应该为我执行此操作?
  • 我的意思是你可以告诉 sikuli 悬停(位置)
  • 啊哈,我已经尝试过使用 Screen click()。它工作得很好......我想知道为什么取景器不能在我的自定义图像上工作?
  • 我也不完全确定。也许你需要得到“最后一场比赛”然后得到坐标?我认为您的形象可能不足以让 sikuli 识别?我之前看到您说您使用的是 0.5 相似度?这还不足以让它挑选出一个目标。
猜你喜欢
  • 2019-05-04
  • 2015-05-19
  • 1970-01-01
  • 2016-09-10
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 2013-03-06
  • 2023-01-30
相关资源
最近更新 更多