Führen Sie das Template-Matching in einer While-Schleife aus, wobei Sie als Bedingung gefragt werden, ob eine Übereinstimmung gefunden wurde oder nicht (mit einem gewissen Sicherheitsschwellenwert). Am Ende jeder Schleife speichern Sie die Übereinstimmung und maskieren Sie den Bereich aus, so dass er nicht wieder gefunden wird. Wenn die Gewissheit unter das Niveau fällt, brechen Sie aus der Schleife aus.
Pseudo-Code:
while true:
maxLoc, maxVal = template_matching() # perform the matching
if(maxVal < threshold) # check if it is a good match and break if not
break
list.append(maxLoc) # save the location of a good match
mask_out(src, (maxLoc.x + template.cols , maxLoc.y + template.rows)) # mask out the area, so that it's not found again
draw_all_rectangles(list)
Denken Sie daran, dass je nach verwendetem Verfahren Template-Matching, entweder Sie MINVAL und MINLOC oder MAXVAL und MAXLOC verwenden. Mit minVal wird die Bedingung das entgegengesetzte Ungleichungssymbol verwenden. Ich überlasse die Implementierung Ihnen. Viel Glück.
klar erklärt, jetzt kann ich das auch verwenden: D –