← Back to team overview

sikuli-driver team mailing list archive

Re: [Question #261278]: Using single image across devices/platforms

 

Question #261278 on Sikuli changed:
https://answers.launchpad.net/sikuli/+question/261278

    Status: Open => Answered

RaiMan proposed the following answer:
This is one of the weird "features" of current Sikuli:
An image captured in one environment might not be usable in other environments, usually caused by different rendering in the other environments, that lead to different pixel contents in the area on the screen, where one "sees" the image, but might not be found by Sikuli.
The reason behind at the button lies in the used OpenCV feature matchTemplate() which simply compares rectangular areas containing RGB-pixels (transparency ignored). It is very efficient and fast, but depends on the fact, that the screen (or better image), that is to be searched contains the search image in the same width and height in pixels and "similar" pixels (the more pixels differ, the lower the similarity).

example: most people do not care very much, about how much surrounding
background is captured with a visual object, but the more background you
capture, the higher the risk, that in different background situations
the image is no longer found, optimal images have less than 10 percent
surrounding background and less.

So as long, as in other environments the rendering leads to the same
size in pixels, there is a good chance to find images with as little
background as possible.

In cases where the pixel size is different or the rendering leads to
significantly different pixel content (e.g. edges with shadows), you
need a different set of images.

If you know, how you have to process the images, to be compatible on
other systems, you might of course use such tools as ImageMagick.

I hope, I can improve this with version 2.

-- 
You received this question notification because you are a member of
Sikuli Drivers, which is an answer contact for Sikuli.