Dasselbe Bild zu finden, ist keine leichte Aufgabe. Es gibt viele mögliche Lösungen. Ich werde hier die möglichen Lösungen auf sehr allgemeine Weise beschreiben.
Template Matching
Template Matching ist ein Algorithmus, der die Ähnlichkeit der entsprechenden Pixel in den Bildern berechnet. Wenn Sie also ein sehr ähnliches Bild suchen (ohne Drehung, Übersetzung, große Intensitätsänderungen), ist es kein so schlechter Algorithmus. Es ist nicht so schnell für ganze Bilder. Es wird eher verwendet, um das gleiche Fragment auf mehreren Bildern oder ein kleineres Bild auf einem größeren Bild zu finden und nicht, um die Ähnlichkeit zweier Bilder zu überprüfen.
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_template_matching/py_template_matching.html
Für ganze Bilder ist es einfacher, die Bilder einfach zu subtrahieren und dann die Vorlagenabstimmung zu verwenden. Es geht viel schneller. Es muss die Annahme bestehen, dass sie sich wirklich ähnlich sind.
Histogramm-Vergleich
Sie können den Histogrammvergleich verwenden. Es ist der schnellste Weg, aber nicht genau. Gras und Äpfel sind beide grün, unterscheiden sich jedoch voneinander. Wenn es um Farbe geht, ist es normalerweise besser, den HSV-Farbraum zu verwenden.
https://docs.opencv.org/3.4.1/d8/dc8/tutorial_histogram_comparison.html
Feature-Matching
Der Algorithmus sucht nach ähnlichen charakteristischen Punkten auf Bildern. Es gibt viele Algorithmen, um Merkmale auf Bildern zu finden. Sie sollten unempfindlich gegenüber Maßstabsänderungen, Drehung usw. sein. Dies hängt jedoch vom Algorithmus für die Merkmalsextraktion ab.
https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_features_meaning/py_features_meaning.html#features-meaning
Andere Alogithmen
Andere Algorithmen sind PSNR oder SSIM. Ich habe es noch nie benutzt, aber es wird verwendet, um die Ähnlichkeit für Original- und Unschärfebild oder für die Ähnlichkeit der gesamten Videosequenz zu berechnen.
https://docs.opencv.org/3.4.2/d5/dc4/tutorial_video_input_psnr_ssim.html
Sie können auch versuchen, Hashes von Bildern zu vergleichen. Es ist ein sehr interessanter Algorithmus (für mich), aber nicht gut dokumentiert.
https://www.pyimagesearch.com/2017/11/27/image-hashing-opencv-python/
Feature-Matching ist der am häufigsten verwendete Algorithmus für diesen Aufgabentyp. Der Grund dafür ist, dass Feature-Matching-Algorithmen ähnliche Bildfragmente erkennen können, wenn Bilder aus einem anderen Winkel unter anderen Bedingungen aufgenommen werden oder sich nur teilweise überlappen. Structure From Motion-Algorithmen verwenden häufig Feature-Matching. https://hub.packtpub.com/exploring-structure-motion-using-opencv/
Die Lösung des Problems hängt immer von den uns vorliegenden Daten ab. Es gibt also keine Antwort.