我最近试图用Sikuli和使用带有Transparant背景的图像来测试。
例如,我们定义了Sikuli IDE:
Image_FireFox = ("FireFox.png")
现在我接受了#34; FireFox.png"我已经使用Paint.NET调整它以使背景透明化。然后我再次将它保存到" FireFox.png",然后我将新的.png放在Sikuli有机放置它的地图上。
当我再次打开IDE时,该图像看起来有黑色背景(而不是透明)。而且我的Sikuli脚本也不再识别图像了。如果我在Windows Viewer中打开图像,背景仍然是透明的。
背后的想法是让图像更好地识别,然后我的脚本不关心FireFox图标的背景是白色,红色还是任何颜色。
有没有人知道Sikuli是否有办法处理具有透明背景的图像?因此,在桌面上找到一个图标会变得更好,背景也不再重要。
答案 0 :(得分:3)
Sikuli(或者我应该说它正在使用的OpenCV核心),并不关心图像本身的背景。它的作用就是扫描整个屏幕,就像它看起来一样。它不知道图像的类型或其他任何东西,只是纯粹的视觉外观。这么说,如果你的图像保持不变,因为你第一次创建模式,你可以在屏幕上唯一地检测它,这将是有效的。
据我所知,这与你想要做的完全相反。不要试图改变图像背景,因为如果你这样做,那么在这张图像背后可见的一切(由于透明度)将阻止Sikuli检测它而不是帮助它。请记住,Sikuli只处理矩形图案,因此除了矩形图像之外的任何东西都不起作用。
关于它在IDE中的外观,我不确定。这可能是由于不支持透明alpha通道的图像。您可以尝试在Sikuli官方论坛here上提出这个问题。
答案 1 :(得分:0)
是时候添加更新的答案了。 截至目前,西库里语已被sikulix取代。 sikulix现在可以安静地处理透明甚至蒙版图像。 参见此处link