Ich war in der Lage, Bilder mit einer homography-Matrix unter Verwendung der cv2.warpPerspective Funktion umzuwandeln/zu verzerren. Wenn ich jedoch openCV nicht verwende und etwas Low-Level verwenden möchte - derzeit verwende ich OpenGL, um einige Grafiken zu zeichnen, und ich möchte eine bekannte Homographiematrix auf bestimmte Ecken anwenden, kann ich keine Homographiematrix als anwenden wie z:OpenCV: Was macht cv2.warpPerspective?/versuchen, Homographien zu verstehen
Für Punkt (x, y), I machen es (x, y, 1). Dann multipliziere ich mit meiner homographischen Matrix H * (x, y, 1). H ist 3x3-Matrix und (x, y, 1) ist 3x1, also erhalte ich ein neues (x ', y', z '), das 3x1 ist. Aber dieser Punkt scheint nicht richtig zu sein?
Ich konnte den richtigen transformierten neuen Punkt mit der Methode hier erhalten: https://math.stackexchange.com/questions/296794/finding-the-transform-matrix-from-4-projected-points-with-javascript, aber ich möchte wirklich wissen, warum das nicht funktioniert!
See [DIESE POST] (http://www.pyimagesearch.com/2014/05/05/building-pokedex-python-opencv-perspective-warping-step-5-6/) für mehr und die dazugehörigen Links –
@JeruLuke Ich habe das gesehen, und ich kann cv2.warppperspective korrekt kein Problem verwenden. Mein Problem ist, warum kann ich die Matrix nicht direkt mit Punkten multiplizieren? – korp
zu tun, dass Sie die 'cv2.findHomography()' Funktion verwenden könnten. Holen Sie sich die Punkte vom Bild ** Quelle **, das Sie auf den Punkt im Bild ** Ziel ** abbilden möchten. –