2010-04-15 7 views
5

Ich arbeite an einem Projekt, um Bilder über Webcam in einem vordefinierten Zeitintervall zu erfassen und kontinuierlich die Bilder mit einer Vorlage zu vergleichen (gutes Bild) und einen Fehler zu geben, wenn die Differenz> Toleranz ist einstellen.Vergleichen Sie genau 2 Bilder für Unterschiede mit OpenCV

Ich arbeite mit OpenCV. Möchte Rat haben, wie soll ich es machen, z.B. beste Methode, etc.

Schätzen Sie, wenn mir jemand dabei helfen kann. Vielen Dank.

Antwort

3

Eine einfache Möglichkeit ist es, nur die L2-Norm zwischen den Bildpaare zu nehmen:

double l2_norm = cvNorm(img1, img2); 

Sie werden mit der Einstellung der entsprechenden Schwelle experimentieren. Natürlich ist diese Methode nicht robust gegenüber Änderungen der Beleuchtung, Änderungen am Standpunkt usw., aber sie ist einfach und schnell.

+0

Hallo, ich schaffe es, mein Projekt hochzubekommen, indem ich den ROI benutze, den ich per Drag & Drop als Vorlage für die Anpassung an die fortlaufenden Videoframes ausgewählt habe. Ich würde gerne fragen, wie ich das Template-Matching-Ergebnis z. wenn die Vorlage gefunden wurde -> functionA(), wenn die Vorlage nicht gefunden wurde -> functionB(). Schätzen Sie, wenn jemand mich in dieser Angelegenheit aufklären kann. Danke im Voraus! – cys

+0

Sie müssen cvMatchTemplate() verwenden, um die Vorlage mit Ihrem Bild zu vergleichen und dann im Ergebnisbild nach der minimalen oder maximalen Position und dem Wert zu suchen (abhängig davon, ob Sie basierend auf mse oder der Korrelation übereinstimmen). Sie müssen einen Schwellenwert für diesen Wert festlegen, um zu bestimmen, auf welchen Patch Ihr Algorithmus als nächstes folgt. – jeff7

Verwandte Themen