Die beste Methode für das, was Sie fragen, ist mit lokalen Funktionen Detektoren wie OpenCV SIFT, SURF und ORB, zum Beispiel.
Sie benötigen mindestens ein Bild von dem Objekt, das Sie erkennen möchten. Danach können diese Algorithmen dieses Bild mit anderen Bildern vergleichen, um zu sehen, ob sie ähnlich genug sind.
Hier ist die Dokumentation für die Algorithmen.
http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html
- SURF und SIFT ('unfreie'):
http://docs.opencv.org/modules/nonfree/doc/feature_detection.html
Die Art und Weise diese Algorithmen für die Arbeit Aufgabe ist von sel Für jedes Bild interessante Punkte auswählen und vergleichen, ob sie übereinstimmen. Wenn mehrere Übereinstimmungen gefunden werden, ist es am meisten wahrscheinlich die Bilder haben das gleiche Objekt.
Tutorials (von Feature-Erkennung und unten):
http://docs.opencv.org/doc/tutorials/features2d/table_of_content_features2d/table_of_content_features2d.html
Sie auch C++ Proben Bezug zu diesem Thema finden Sie hier (Proben sind auch in OpenCV-Download-Paket):
- z. "matching_to_many_images.cpp"
- "video_homography.cav“
http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/cpp
Und Android Java Proben hier (nicht verwandt, sondern auch hilfreich):
http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/android
Oder Python Proben, die tatsächlich die aktualisierten und diejenigen hierfür sind Thema (zu der Zeit, als dieser Beitrag geschrieben wurde):
http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/python2
Als letzte Anmerkung, wie @BDFun im Kommentar gesagt, ist dies nicht trivial zu tun.
Mehr - Wenn Sie eine Übersicht über die Erkennung und Beschreibung von OpenCV-Funktionen wünschen, check this post.
Welche Objekterkennungsalgorithmen haben Sie untersucht? Zuerst müssen Sie sich für die am besten geeignete für Ihre Anwendung entscheiden. Abhängig von Ihrem Algorithmus müssen Sie möglicherweise Trainingsdaten verwenden, um ein Modell zu definieren, das das Objekt, das Sie erkennen möchten, am besten beschreibt. Computer Vision ist ein sehr schwieriger Bereich, in dem man arbeiten muss, und erfordert ein gutes Verständnis der Region. Wenn Sie neu sind, würde ich empfehlen, einige Lehrbücher zu bekommen. – BDFun