← Back to team overview

sikuli-driver team mailing list archive

[Bug 880861] Re: [request] findAll() should only return the most probable matches

 

Great, thanks for the documentation. This will really help and supports
my request towards findAll().

The "problem" is due to the drastic improvement of the vision engine.
The score in 10.2 is below .95 and is .99+ (which means exact match) in X. This difference means worlds in pattern recognition.
But I agree, that this was implemented in X without notice. And everyone, who works with findAll() should be aware of this situation.
That you only got the expected matches in 10.2 was due to the fact, that all other matches in 10.2 had a score below .7. And again I agree, from your sight, this was what you expected and did not work then same in X.

And there might still be problems in the new vision engine together with
solid colors as background in images (what you stated above analyzing
the Preview result).


** Description changed:

  --- request (based on the primary bug situation)
+ valuable test information below in comment #5 +
  
  findAll(): "most probable" means, that only those matches are returned,
  whose score differ only slightly from that of the best match (e.g. max
- 0.5 or even less). This surely is the expectation of most people, when
+ 0.3 or even less). This surely is the expectation of most people, when
  using findAll().
  
  Additionally it might make sense, to implement a findAny(), that returns
  ALL matches having a score above the given similarity, because this
  might be the expected result in some situations, when using findAll() in
  its current shape.
  
  -------------------------------------------------
  
  1. Sikuli 1.0 rc3
  2. Windows XP SP3 32-bit
  3. Enclosed code loops over all "Apply" boxes. Once apply has been clicked it wait for a confirmation box to appear, confirms, waits for the confirmation box to disappear. The final match does not point to the bitmap.
  4. Required bitmaps attached.
  
  # setFindFailedResponse(PROMPT)
  setROI(Screen(0))
  
  applies = findAll("Apply.png")
  
  for apply in applies:
      click(apply)
      confirm="Doyoureallyw-1.png"
      wait(confirm)
      click(Pattern("YesNo.png").targetOffset(-31,-1))
      waitVanish(confirm)

-- 
You received this bug notification because you are a member of Sikuli
Drivers, which is subscribed to Sikuli.
https://bugs.launchpad.net/bugs/880861

Title:
  [request] findAll() should only return the most probable matches

Status in Sikuli:
  New

Bug description:
  --- request (based on the primary bug situation)
  valuable test information below in comment #5 +

  findAll(): "most probable" means, that only those matches are
  returned, whose score differ only slightly from that of the best match
  (e.g. max 0.3 or even less). This surely is the expectation of most
  people, when using findAll().

  Additionally it might make sense, to implement a findAny(), that
  returns ALL matches having a score above the given similarity, because
  this might be the expected result in some situations, when using
  findAll() in its current shape.

  -------------------------------------------------

  1. Sikuli 1.0 rc3
  2. Windows XP SP3 32-bit
  3. Enclosed code loops over all "Apply" boxes. Once apply has been clicked it wait for a confirmation box to appear, confirms, waits for the confirmation box to disappear. The final match does not point to the bitmap.
  4. Required bitmaps attached.

  # setFindFailedResponse(PROMPT)
  setROI(Screen(0))

  applies = findAll("Apply.png")

  for apply in applies:
      click(apply)
      confirm="Doyoureallyw-1.png"
      wait(confirm)
      click(Pattern("YesNo.png").targetOffset(-31,-1))
      waitVanish(confirm)

To manage notifications about this bug go to:
https://bugs.launchpad.net/sikuli/+bug/880861/+subscriptions


References