Bilder auf Ähnlichkeit mit OpenCV prüfen
Tut OpenCV-Unterstützung des Vergleichs von zwei Bildern, die Rückgabe bestimmter Wert (vielleicht ein Prozent), der angibt, wie ähnlich diese Bilder sind? E. g. Wäre 100% zurückgegeben, wenn das gleiche Bild wurde zweimal Durchlaufen, 0% zurückgegeben, wenn Sie die Bilder waren Total anders.
Ich schon gelesen, eine Menge von ähnlichen Themen, die hier auf StackOverflow. Ich habe auch einiges Googeln. Leider konnte ich nicht kommen mit einer satisfieng Antwort.
InformationsquelleAutor der Frage Boris | 2012-07-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein wirklich riesiges Thema, mit Antworten, die aus 3 Zeilen code, um die gesamte Forschungs-Zeitschriften.
Ich werde Gliederung die meisten gängigen Techniken und Ihrer Ergebnisse.
Vergleich der Histogramme
Eines der einfachsten & fastest Methoden. Schlug vor Jahrzehnten als ein Mittel zu finden, Bild simmilarities. Die Idee ist, dass ein Wald, viel grüner, und ein menschliches Gesicht, eine Menge von rosa, oder was auch immer. Also, wenn Sie vergleichen zwei Bilder, die in den Wäldern bekommen Sie einige simmilarity zwischen Histogramme, weil Sie eine Menge von grünen in beiden.
Template-matching
Ein gutes Beispiel hier matchTemplate die Suche nach dem guten match. Es convolves die Suche nach Bild mit dem zu suchen in. Es ist in der Regel verwendet, um kleinere Bildteile in ein größeres.
Feature matching
Als eine der effizientesten Möglichkeiten, um Bilder zu suchen. Eine Reihe von Merkmalen, extrahiert aus einem Bild, in einer Weise, die garantiert die gleichen Eigenschaften, wird wieder erkannt werden, selbst gedreht/skaliert/verzerrt werden. Die Merkmale extrahiert, die auf diese Weise abgestimmt werden können gegen andere Bild-feature-sets. Ein weiteres Bild, dass ein hoher Anteil der Funktionen in der erste ist wahrscheinlich der Darstellung der gleichen Objekte/Szene. Es kann verwendet werden, zu finden, der relative Unterschied im Aufnahmewinkel zwischen den pics, oder die Höhe der überlappung.
InformationsquelleAutor der Antwort Sam
Wenn für passenden identische Bilder ( gleiche Größe/Ausrichtung )
Quelle
InformationsquelleAutor der Antwort Kiran
Ein wenig off-topic, aber nützlich ist die pythonic
numpy
Ansatz. Die robuste und schnell, aber nicht einfach vergleichen Sie Pixel und keine Objekte oder Daten, die das Bild enthält (und es erfordert, dass Bilder der gleichen Größe und Form):Einen sehr einfachen und schnellen Ansatz, um dies zu tun, ohne openCV und jede Bibliothek für computer vision ist die norm des Bild-arrays durch
Nach der Definition sowohl die normierte Abbildungen (oder Matrizen) können Sie einfach die Summe über die Multiplikation der Bilder, die Sie vergleichen möchten:
1) Wenn Sie vergleichen, ähnliche Bilder aus der Summe 1 zurück:
2) Wenn Sie nicht ähnlich, Sie bekommen einen Wert zwischen 0 und 1 (ein Prozentsatz, wenn Sie multipliziert mit 100):
Bitte beachten Sie, dass, wenn Sie farbige Bilder, die Sie haben zu tun, dies in allen 3 Dimensionen oder einfach nur vergleichen greyscaled version. Ich habe oft zu vergleichen, riesige Mengen von Bildern mit beliebigem Inhalt, und das ist eine wirklich schnelle Möglichkeit, dies zu tun.
InformationsquelleAutor der Antwort Franz
Sam ' s Lösung sollte ausreichend sein. Ich habe verwendet, Kombination der beiden Histogramm-Differenz und template-matching da nicht eine Methode war die Arbeit für mich 100% der Zeit. Ich habe da weniger Bedeutung Histogramm-Methode wenn. Hier ist, wie ich schon umgesetzt in einfachen python-Skript.
InformationsquelleAutor der Antwort Priyanshu Chauhan