sikuli-driver team mailing list archive
-
sikuli-driver team
-
Mailing list archive
-
Message #19390
[Question #232881]: Finder - how to match multiple sub-images within a captured image
New question #232881 on Sikuli:
https://answers.launchpad.net/sikuli/+question/232881
Attempting to scan a previously saved screen capture. The screen capture contains multiple (similar) blocks of data. Each block contains three fields. Field 1 is a unique identifier, Field 2 will vary and must be ignored, Field 3 contains the content that will pass/fail this test step, but that content can also appear in other blocks of data.
Desired Algorithm Pseudo Code:
full_block = Pattern( "image1.png" ).similar(0.70) # image of block to find
field1 = Pattern("subimage1.png").similar(0.95) # a sub-image of image1.png, can uniquely identify the block
field2 = Pattern("subimage2.png") # sub-image of image1.png, a field to ignore, we won't do anything with it
field3 = Pattern("subimage3.png").similar(0.95) # sub-image of image1.png, important field (can exist in multiple blocks, but we're checking to see if it exists in this block)
f = Finder( "path\previouslyCapturedImage.png" )
f.findAll(full_block) # search previouslyCapturedImage.png, will return multiple matches
while f.hasNext():
current_match = f.next()
if current_match.find( field1 ):
# We've uniquely the block, check unique identifier field1
if current_match.find(field3):
print "Correct information found!"
else:
print "Incorrect information found!"
# We can exit now because we found unique identifier field1
break
else:
# no match on unique identifier field 1, this means current_match is a different block, so skip to the next one
continue
This style of code works when using the Screen as the target of the find commands, but doesn't appear to work when using a previously saved image of the screen as the target. Any ideas on how to accomplish something similar? If my example isn't clear enough please let me know.
--
You received this question notification because you are a member of
Sikuli Drivers, which is an answer contact for Sikuli.