Python - Perspektivische Transformation für OpenCV aus einem Rotationswinkel

9

Ich arbeite an depth map with OpenCV . Ich kann es erhalten, aber es wird vom linken Kameraursprung rekonstruiert und es gibt eine kleine Neigung von letzterem und wie Sie auf der Abbildung sehen können, wird die Tiefe "verschoben" (die Tiefe sollte nahe und kein horizontaler Gradient sein):

Ich möchte es als mit einem Nullwinkel ausdrücken, ich versuche mit der Warp-Perspektive Funktion, wie Sie unten sehen können, aber ich erhalte ein Nullfeld ...

%Vor%

mit:

%Vor%

SPÄTER BEARBEITEN:

Sie können den 32-MB-Felddatensatz hier herunterladen: Ссылка . Laden und betrachten Sie dann das Bild mit:

%Vor%     
user3601754 02.01.2017, 13:54
quelle

1 Antwort

4

Ich habe eine grobe Lösung an Ort und Stelle. Sie können es später ändern.

Ich habe die in OpenCV verfügbaren Maushandhabungsoperationen verwendet, um die Region von Interesse in der gegebenen Heatmap zu beschneiden.

(Habe ich gerade gesagt, dass ich eine Maus benutzt habe, um die Region zu beschneiden?) Ja, habe ich. Um mehr über Mausfunktionen in OpenCV zu erfahren SEE THIS . Außerdem gibt es viele andere SO-Fragen, die Ihnen dabei helfen können.:)

Mit diesen Funktionen konnte ich folgendes erhalten:

Nun zu Ihrer Frage, wie Sie die Neigung entfernen können. Ich habe das Homographie-Prinzip verwendet, indem ich die Eckpunkte des obigen Bildes genommen habe und es auf einem "weißen" Bild einer bestimmten Größe verwendet habe. Ich habe dafür die Funktion cv2.findHomography() verwendet.

Mit der Funktion cv2.warpPerspective() in OpenCV konnte ich Folgendes erhalten:

Jetzt können Sie die gewünschte Skalierung für dieses Bild verwenden.

CODE:

Ich habe auch einige Codeschnipsel für Ihre Kenntnisnahme beigefügt:

%Vor%

Als nächstes habe ich die Eckpunkte pts_src auf dem geneigten Bild unten erhalten:

%Vor%

Ich wollte, dass die obigen Punkte den unten angegebenen Punkten 'pts_dst' zugeordnet werden:

%Vor%

Jetzt habe ich das Prinzip der Homographie verwendet:

%Vor%

Schließlich habe ich das ursprüngliche Bild mithilfe der Perspektiventransformation dem weißen Bild zugeordnet.

%Vor%

Hoffe, das hilft! Ich habe auch viel von dieser Frage gelernt.

Hinweis: Die Punkte, die der 'cv2.findHomography ()' zugewiesen werden, müssen in float sein. Weitere Informationen zu Homography finden Sie unter DIESE SEITE

    
Jeru Luke 09.01.2017, 19:29
quelle