-
Notifications
You must be signed in to change notification settings - Fork 24
Description
Describe the bug
find.all sometime returns duplicated objects on specific matching range
find.all in version 0.4.0 find.all returns the list of objects by matchscore.
In version 0.3.0 it was in the order they are found on the screen.
Box: x=1447, y=740, w=52, h=29, score=0.9999566078186035
Box: x=1102, y=740, w=52, h=29, score=0.967707633972168
Box: x=1620, y=740, w=52, h=29, score=0.9400887489318848
Box: x=1275, y=740, w=52, h=29, score=0.8545419573783875
Box: x=1274, y=740, w=52, h=29, score=0.846000075340271
Box: x=1533, y=641, w=52, h=29, score=0.82472825050354
objects 4 and 5 are the same
objects are shown in order of best score
Expected behavior
Box: x=1447, y=740, w=52, h=29, score=0.9999566078186035
Box: x=1102, y=740, w=52, h=29, score=0.967707633972168
Box: x=1620, y=740, w=52, h=29, score=0.9400887489318848
Box: x=1275, y=740, w=52, h=29, score=0.8545419573783875
Box: x=1533, y=641, w=52, h=29, score=0.82472825050354
Steps to Reproduce
cv2find.py edited to print score:
print(f"Box: x={x}, y={y}, w={needle_width}, h={needle_height}, score={result[y]}")
yield Box(x, y, needle_width, needle_height)
elements = self.find_all(label="arena_150", matching=0.81, waiting_time=1000, grayscale=False)
elements_list = list(elements)
Possible Solution
Fix duplicated entry
Please give find.all the option to list objects by score and also as it was in version 0.3.0 in the order they appeared on the screen (left-right-top-bottom)
for x, y in zip(matchx, matchy):
yield Box(x, y, needle_width, needle_height)
My Platform
botcity-email-plugin 0.1.3
botcity-framework-base 0.4.3
botcity-framework-core 0.3.0+2.g54db502
botcity-framework-web 0.8.2
botcity-maestro-sdk 0.3.4
botcity-telegram-plugin 0.1.4
Additional context