Richten Sie Bilder in opencv aus

8

Ich habe Bilder derselben Szene in unterschiedlichen Entfernungen fokussiert. Ich möchte die Bilder so ausrichten, dass sich jedes Feature in jedem Bild genau an derselben Position befindet. Wie kann ich dies mit opencv tun?

    
user3363298 28.02.2014, 04:14
quelle

4 Antworten

8

Zuerst haben Sie die Transformation zwischen Ihren Bildern festgelegt. Es kann so einfach wie Shift oder so komplex wie nichtlineares Warping sein. Die Fokussieroperation kann die Bilder nicht nur verschieben, sondern auch leicht skalieren und sogar scheren. In diesem Fall müssen Sie Homography verwenden, um sie zu vergleichen.

Zweitens müssen Sie am einfachsten mindestens 4 Paris der entsprechenden Punkte manuell auswählen, ihre Koordinaten aufzeichnen und in findHomography () Funktion. Die resultierende 3x3-Transformation kann in warpPerspective () , um die Bilder zu vergleichen. Wenn das Ergebnis gut ist, können Sie den Prozess des Findens von Übereinstimmungen automatisieren, indem Sie zum Beispiel SURF-Punkte verwenden und ihre Deskriptoren anpassen.

Wenn das Ergebnis nicht zufriedenstellend ist, müssen Sie eine allgemeinere Transformation als Homographie durchführen. Ich würde versuchen, stückweise Affine zu versuchen, Bilder separat zu vergleichen. Wie auch immer, mehr Informationen über Ihre Eingabe und ein endgültiges Ziel helfen, das Problem richtig zu lösen.

    
Vlad 01.03.2014 09:06
quelle
4

Sie können Bildstiche oder feature machting Algorithmen von openCV.

Die wichtigsten Schritte beim Feature-Matching sind:

  • Funktionen extrahieren (SURF oder SIFT oder andere ...)
  • Ordne die Features (FANN oder BruteForce ...) zu und filtere die Übereinstimmungen
  • Finden Sie die geometrische Transformation (RANSAC oder LMeds ...)
Olivier A 28.02.2014 07:47
quelle
3

Die Grundidee besteht darin, die Bilder und ihre 2D-Verschiebung in X- und Y-Richtung auf der Grundlage ihrer übereinstimmenden Merkmalspunkte in der Ebene zu drehen.

Sehen Sie sich Bildausrichtungsalgorithmen an, in denen Sie zwei Ansätze finden können, um dies mit OpenCV zu tun ( mit Code).

    
herohuyongtao 28.02.2014 04:43
quelle
2

Gehen Sie diese Links aus:

Bildausrichtung (ECC) in OpenCV (C ++ / Python), langsam, aber es funktioniert: Ссылка

Homographie-Beispiele mit OpenCV (Python / C ++) Ссылка

Github-Code: Ссылка

    
thiagofalcao 12.01.2016 14:46
quelle

Tags und Links