Transition from 1.1.0 to 2.0.4. Unexpected image search behavior

Asked by Darius Tumas

As title states i'm converting my Java application from Sikuli 1.1.0 to 2.0.4.

In 1.1.0 Following procedure was:
1. Create image from sprites sheet.
2. Crop to the spot of interest
3. Take focused window as region
4. Find all matches in that region.

final Region program = App.focusedWindow();
Final Image windowElements = Image.create("window_panel_decorations");

Image titleTabStart = windowElements.getSub(12, 156, 18, 21);

final Iterator<Match> titleStarts = program.findAll(titleTabStart);

and then logic in iteration.

With 2.0.4 i'm getting following exception and errors:

1. [error] Finder2: makeMat: BufferedImage: type not supported: 0 --- please report this problem
2. Exception in thread "main" [error] Finder: __BufferedImage__: (18x21): conversion error --- find will fail
org.sikuli.script.SikuliXception: Finder::isValid: image to search is empty
 at org.sikuli.script.Finder$FindInput2.isValid(
 at org.sikuli.script.Finder$Finder2.doFind(
 at org.sikuli.script.Finder$Finder2.find(
 at org.sikuli.script.Finder.findAll(
 at org.sikuli.script.Region.doFindAll(
 at org.sikuli.script.Region.access$300(
 at org.sikuli.script.Region$
 at org.sikuli.script.Region$Repeatable.repeat(
 at org.sikuli.script.Region.findAll(

At current moment, i'm stuck with debuging with what has changed, that old logic does not work any more. Any help appreciated.

Question information

English Edit question
SikuliX Edit question
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Darius Tumas (tokeiito-m) said :

When i debug both images by saving them, they do exist, and they do have expected contents.

OS: Windows 10
Java: OpenJDK 8

Revision history for this message
Darius Tumas (tokeiito-m) said :

Not sure is that intentional or not, but the problem seems is with:

Image testImage = Image.create("image_name_in_classpath");
testImage.getSub(x, y, w, h);

getSub returns Image with BufferedImage with custom type when source image ""image_name_in_classpath" has color profile attached to it, instead being just standard RGB or SRGB.

Work around without converting source image for now i have used:

Image titleTabStart = new Image(Image.createSubimage(windowElements.get(), new Rectangle(12, 156, 18, 21)));

Can you help with this problem?

Provide an answer of your own, or ask Darius Tumas for more information if necessary.

To post a message you must log in.