Dies ist ein riesiges Thema mit Antworten aus 3 Codezeilen auf ganze Forschungsmagazine.
Ich werde die gebräuchlichsten derartigen Techniken und ihre Ergebnisse skizzieren.
Histogramme vergleichen
Eine der einfachsten und schnellsten Methoden. Vor Jahrzehnten vorgeschlagen, um Bildähnlichkeiten zu finden. Die Idee ist, dass ein Wald viel Grün und ein menschliches Gesicht viel Rosa oder was auch immer haben wird. Wenn Sie also zwei Bilder mit Wäldern vergleichen, werden Sie einige Ähnlichkeiten zwischen Histogrammen feststellen, da Sie in beiden viel Grün haben.
Nachteil: Es ist zu simpel. Eine Banane und ein Strand sehen gleich aus, da beide gelb sind.
OpenCV-Methode: compareHist ()
Vorlagenübereinstimmung
Ein gutes Beispiel hier matchTemplate, um eine gute Übereinstimmung zu finden . Es faltet das Suchbild mit dem, in dem gesucht wird. Es wird normalerweise verwendet, um kleinere Bildteile in einem größeren zu finden.
Nachteile: Es werden nur gute Ergebnisse mit identischen Bildern, gleicher Größe und Ausrichtung erzielt.
OpenCV-Methode: matchTemplate ()
Feature Matching
Wird als eine der effizientesten Methoden zur Bildsuche angesehen. Eine Reihe von Merkmalen wird aus einem Bild so extrahiert, dass garantiert wird, dass dieselben Merkmale auch dann wieder erkannt werden, wenn sie gedreht, skaliert oder verzerrt werden. Die auf diese Weise extrahierten Features können mit anderen Bildfeaturesätzen verglichen werden. Bei einem anderen Bild, bei dem ein hoher Anteil der Merkmale mit dem ersten übereinstimmt, wird dieselbe Szene dargestellt.
Wenn Sie die Homografie zwischen den beiden Punktsätzen finden, können Sie auch den relativen Unterschied im Aufnahmewinkel zwischen den Originalbildern oder den Überlappungsgrad ermitteln.
Es gibt eine Reihe von OpenCV-Tutorials / Beispielen dazu und ein schönes Video hier . Ein ganzes OpenCV-Modul (features2d) ist ihm gewidmet.
Nachteile: Es kann langsam sein. Es ist nicht perfekt.
Drüben auf der OpenCV-Q & A- Site spreche ich über den Unterschied zwischen Feature-Deskriptoren, die beim Vergleich ganzer Bilder großartig sind, und Textur-Deskriptoren, mit denen Objekte wie menschliche Gesichter oder Autos in einem Bild identifiziert werden.