Ich las die Dokumente über Vorlagenvergleich mit opencv und Python und im letzten Teil über Vorlagenvergleich mit mehreren Objekten, der Code erkennt die 19 Münzen auf dem Mario-Bild, aber, ist es möglich, die Anzahl der Objekte mit einigen erkannt zu zählen Funktion auf Python wie len() oder irgendeine opencv Methode?Wie kann die Anzahl der Objekte gezählt werden, die mit dem Template Matching erkannt wurden?
Hier wird gezeigt, der Code auf dem Tutorial: http://docs.opencv.org/3.1.0/d4/dc6/tutorial_py_template_matching.html
Template Matching Code:
import cv2
import numpy as np
from matplotlib import pyplot as plt
img_rgb = cv2.imread('mario.png')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread('mario_coin.png',0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where(res >= threshold)
for pt in zip(*loc[::-1]):
cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)
cv2.imwrite('res.png',img_rgb)
Und das Ergebnis ist: Mario Bros & Coins
So ist es eine Möglichkeit, die zählen Münzen auf dem Bild erkannt und drucken Sie die Nummer auf dem Terminal? Etwas wie:
The Template Matching code showed before...
print "Function that detect number of coins with template matching"
>>> 19
Zeigen Sie uns, was Sie bisher versucht haben. – DimKoim
Siehe ähnliche [Frage] (http://stackoverflow.com/q/33990259/1628638). Die Antwort dort bietet jedoch keine angemessene Lösung für das Problem "65 vs. 19" in der Frage. Eine einigermaßen zuverlässige Lösung wäre, keine Übereinstimmungen zu zählen, die sehr nahe bei einem vorherigen Spiel liegen. (Wenn Sie Ihre Eingabebilder bereitstellen, ist es für Personen einfacher, dies für Sie zu programmieren.) –