matchTemplate die Suche nach dem guten match
Hallo ich benutze diese Antwort und Schreibe mein eigenes Programm, aber ich habe problem. Wenn es nicht das Objekt, matchTemplate nicht, gibt einen Fehler aus, und ich kenne keine Methode um zu überprüfen, ob matchTemplate das Objekt finden oder auch nicht, kann jemand mir einen Rat geben, oder mir sagen, name der Funktion, die es zu überprüfen.
InformationsquelleAutor haykart | 2011-12-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
matchTemplate()
gibt eine matrix, deren Werte geben die Wahrscheinlichkeit an, dass sich Ihr Objekt in diesem pixel zentriert. Wenn Sie wissen, das Objekt (und nur ein Objekt) ist es, alles, was Sie tun müssen, ist Blick für die Lage des maximalen Wertes.Wenn Sie nicht wissen, Sie haben, um den max-Wert, und wenn es über eine bestimmte Schwelle, wird das Objekt da sein soll.
Nun, die Auswahl, die Schwelle ist schwierig - es ist bis zu Ihnen, zu finden, die gute Schwelle, die speziell für Ihre app. Und natürlich müssen Sie einige false-positives (wenn kein Objekt vorhanden ist, aber der max ist größer als Schwelle) und einige falsch-negative Befunde (Ihr Objekt nicht erstellen Sie eine, die groß genug peak)
Der Weg zu wählen der Schwelle ist zu sammeln eine ziemlich große Datenbank von Bildern mit und ohne Objekt im inneren, und stellen Sie eine Statistik wie groß ist der Höhepunkt, wenn Objekt im inneren ist, und wie groß ist es, wenn es nicht ist, und wählen Sie die Schwelle, die am besten trennt die beiden Klassen
minMaxLoc(), in dem link, den Sie, gibt nur die max Position. Füllen Sie an der richtigen Stelle ein Doppel-ref, statt der NULL, und Sie erhalten den max-Wert in das Bild. (überprüfen Sie die OpenCV-doc für minMaxLoc() )
wenn
matchTemplate()
Wahrscheinlichkeit gibt, warum sollte ich negative Wert vom return-matrix. Haben Sie eine Ahnung davon???InformationsquelleAutor Sam