Sikuli 和具有透明背景的图像

Sikuli and Images with a Transparant background

我最近正在尝试使用 Sikuli 进行测试,并尝试使用具有透明背景的图像。

例如使用 Sikuli IDE 我们定义:

Image_FireFox = ("FireFox.png")

现在我把那个 "FireFox.png" 和我用 Paint.NET 调整了它使背景透明。然后我再次将它保存到 "FireFox.png",并将新的 .png 放在 Sikuli 最初放置它的地图中。

当我再次打开 IDE 时,该图像显示为黑色背景(并且不透明)。而且我的 Sikuli 脚本不再识别该图像。如果我在 Windows 查看器中打开图像,背景仍然是透明的。

其背后的想法是让图像更好地识别,然后我的脚本就不会在意FireFox图标的背景是白色,红色还是任何颜色。

有谁知道Sikuli有没有办法处理透明背景的图片?这样在桌面上找到一个图标就更好了,背景就不再重要了。

Sikuli(或者我应该说它正在使用的 OpenCV 核心)不关心图像本身的背景。它所做的只是按原样扫描整个屏幕,就像您看到的那样。它不知道图像类型或其他任何东西,只是纯粹的视觉外观。也就是说,如果您的图像自您第一次创建图案以来一直保持不变,并且您可以在屏幕上唯一地检测到它,那就行得通了。

据我了解,这与您想要做的完全相反。不要尝试更改图像背景,因为如果您这样做,图像后面将变得可见的所有内容(由于透明度)将阻止 Sikuli 检测它而不是帮助它。请记住,Sikuli 仅处理矩形图案,因此矩形图像以外的任何内容均无效。

关于它在 IDE 中的样子,我不确定。这可能是因为不支持具有透明 alpha 通道的图像。这个问题你可以去Sikuli官方论坛问here.

是时候添加更新的答案了。 截至当前状态,sikuli 已被 sikulix 取代。 sikulix 现在可以安静地处理透明甚至蒙版图像。 看这里link