ich diesen Code zu verwenden, versuchen Kameraposition zu finden, indem flaches Bild im Bild lokalisieren:solvePnP/solvePnPRansac nicht gibt gute Kameraposition Schätzung
https://docs.opencv.org/3.3.1/d1/de0/tutorial_py_feature_homography.html
Für dieses Bild, um es korrekt funktioniert:
und findet das Muster. Ich benutze cv2.projectPoints Bild über Hintergrundbild zu zeichnen:
Aber manchmal solvePnP verrückt Ergebnisse zurück, zum Beispiel für dieses Bild:
ich verrückt Bildposition, wenn ich neu projiziert das Muster:
Für diesen Fall ich SIFT Punkte überprüft haben, sehen sie richtig und Spiel:
Ich versuchte solvePnPRansac statt solvePnP zu verwenden, aber es hilft nicht, ist geschätzte Position noch seltsam. Was könnte der Grund sein und wie kann ich dieses Problem lösen?
Was möchten Sie genau erreichen? 'solvePnP' findet eine Objektpose aus 3D-2D-Punktkorrespondenzen. und von Ihnen haben Sie gezeigt, dass Sie überhaupt keine 3D-Punkte haben. Der von Ihnen geteilte Python-Code dient zur Berechnung der Homografiematrix, die die perspektivische Transformation zwischen dem Objekt in der Szene und dem trainImage (dem oben links stehenden) ist Ecke des letzten Bildes) –
Ich muss die Kameraposition finden. Ich habe 3D-Punkte, weil ich weiß, dass ein Stück Papier auf dem Tisch ist, dh z = 0, also habe ich Array von 3D-Punkten und auch Array von 2D-Punkten auf dem Musterbild, so kann ich Projektion rvec und tvec zu finden Kameraposition im Raum. –