← Back to team overview

sikuli-driver team mailing list archive

Re: [Question #668667]: Return the dimensions of an image that's just been found

 

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

Description changed to:
So this is an example of the code I'm working with, the real code has
twenty images, but I've simplified it to three.

	mySimilarity = 0.86
	count = 0
	main_address = r"C:\Users\USER_ADDRESS\4thloop"
	while True:# Searching......at the 4th loop. LAST ADDED 13 04 2018
	  while (count < 10): # Reduce the Match by 9 percent.
		if exists(Pattern(Pattern("1519473664449.png").targetOffset(1,-22)).similar(mySimilarity)):
		  print('found 1st image at similarity %f') % mySimilarity
		  first_image_used =  main_address + r"\first_image_used.txt"
		  file = open(first_image_used)
		  current_amount_of_times_image_used = file.read()
		  file.close()
		  new_current_amount_of_times_image_used = int(1) + int(current_amount_of_times_image_used)
		  print('Number of times this image has been found %f') % new_current_amount_of_times_image_used
		  text = str(new_current_amount_of_times_image_used)
		  f = open(first_image_used, 'w')
		  f.write(text)
		  f.flush()
		  f.close()
		  break
		elif exists(Pattern(Pattern("1525270211713.png").targetOffset(1,-21)).similar(mySimilarity)):
		  print('found 2nd image at similarity %f') % mySimilarity
		  second_image_used =  main_address + r"\second_image_used.txt"
		  file = open(second_image_used)
		  current_amount_of_times_image_used = file.read()
		  file.close()
		  new_current_amount_of_times_image_used = int(1) + int(current_amount_of_times_image_used)
		  print('Number of times this image has been found %f') % new_current_amount_of_times_image_used
		  text = str(new_current_amount_of_times_image_used)
		  f = open(second_image_used, 'w')
		  f.write(text)
		  f.flush()
		  f.close()
		  break
		elif exists(Pattern(Pattern("1525274687366.png").targetOffset(1,-22)).similar(mySimilarity)):
		  print('found 3rd image at similarity %f') % mySimilarity
		  third_image_used =  main_address + r"\third_image_used.txt"
		  file = open(third_image_used)
		  current_amount_of_times_image_used = file.read()
		  file.close()
		  new_current_amount_of_times_image_used = int(1) + int(current_amount_of_times_image_used)
		  print('Number of times this image has been found %f') % new_current_amount_of_times_image_used
		  text = str(new_current_amount_of_times_image_used)
		  f = open(third_image_used, 'w')
		  f.write(text)
		  f.flush()
		  f.close()
		  break
		else:
		  count = count + 1
		  mySimilarity = mySimilarity - 0.01 # reduce by 1%
		  print('mySimilarity is %f') % mySimilarity
		  if count > 8:
			print('none of the images found.')
			popup('none of the images found.')
		  continue # retry from the beginning
	  break

When "none of the images found" is printed excessively I go looking for the corresponding text file with a zero in it, I replace the image, then start the program over from the beginning, all up that wastes about 10 minutes.
So I've discovered the screen capture feature, so I figure I can automate the process by having a new screenshot taken of images as they are found, but I'm not sure how to return the dimensions of a found image.
Once I know how to return the dimensions of a found image I can update the least recognized images.
Hope that made sense.

-- 
You received this question notification because your team Sikuli Drivers
is an answer contact for Sikuli.