Hallo, ich habe ein Polygon, dass ich über ein Foto legen will (siehe linke Seite im Anhang). Im zweiten Schritt will ich das Polygon "verzerren", d.h. die Positionen der Eckpunkte des Polygons verändern, so dass ein neues Polygon entsteht (siehe rechte Seite im Anahng). Ich suche nun einen Algorithmus, mit der man das darunter liegende Foto "mit verzerren" oder "interpolieren" kann. Idealerweise sollen keine Informationen verloren gehen, sondern nur verschoben werden. Mir ist klar, dass das eine nicht besonders genau Aufgabenstellung ist, aber ich hoffe, dass jemand ein bisschen was von diesem Thema versteht.
:
Verschoben durch Moderator
Martin R. schrieb: > Mir ist klar, dass das eine nicht besonders genau Aufgabenstellung ist, Warp und Morph https://helpx.adobe.com/photoshop/using/warp-images-shapes-paths.html http://davis.wpi.edu/~matt/courses/morph/2d.htm https://en.wikipedia.org/wiki/Beier%E2%80%93Neely_morphing_algorithm http://graphics.cs.cmu.edu/courses/15-463/2011_fall/Lectures/morphing.pdf
Nach einigen Sekunden Nachdenken, scheint mir, dass es mehrere Definition von Verzerrungen, gegeben durch die Verschiebung der Eckpunkte eines Polygons geben kann. Siehst Du das auch so? Das simpelste wäre umschreibende Rechtecke zu nehmen und dazwischen eine affine Transformation auszuführen. Jedenfalls würde ich für die Implementierung sowas wie OpenCV in Betracht ziehen. Hier gibt es einige Doku (für die Vorgängerversion von OpenCV) zu den geometrischen Transformationen: http://opencv.jp/opencv-2svn_org/py/imgproc_geometric_image_transformations.html
Nach weiterem Nachdenken fallen mir nur Interpretationen Deiner Beschreibung ein, die zu einem verwaschenen, unscharfen Bild führen würden. Das mag unvermeidbar sein; ich kann es im Moment nicht sagen. Vielleicht würde es helfen, wenn Du erklärst, wozu das Ganze gut sein soll. Warum ein Polygon im Ausgangsbild? Warum ein (verändertes ursprüngliches) Polygon um die Verzerrung zu definieren?
Theor schrieb: > scheint mir, dass es mehrere > Definition von Verzerrungen, gegeben durch die Verschiebung der > Eckpunkte eines Polygons geben kann Nehmen wir mal das obere Eck, das wird ein Stück nach oben gezogen. Klar ist: Der Eckpunkt bekommt die neue Position, und die Punkte auf den Verbindungsgeraden zu den benachbarten Eckpunkten sind zu interpolieren. Aber: wie weit in das Bild hinein soll sich die Deformation erstrecken? 20 %? oder bis zur Mitte? Oder bis zur anderen Seite? Das erscheint mir schon ziemlich willkürlich, und noch viel willkürlicher wird es sein, wie die Deformation durch versetzte Ecken zu einer Gesamttransformation kombiniert wird. Vielleicht führt eine Simulation zum Ziel, die davon ausgeht, dass das Bild aus Gummi besteht in der ursprünglichen Form, der an den neuen Eckpunkten aufgespannt wird. Also man schneidet sich eine Gummifolie wie die Ursprungsform und pinnt die mit Stecknadeln an den neuen Eckpunkten fest. Aber erstens ist das auch ziemlich aufwendig und zweitens ist überhaupt nicht gesagt dass das Ergebnis dem TO gefällt. Georg
Georg schrieb: > Vielleicht führt eine Simulation zum Ziel, die davon ausgeht, dass das > Bild aus Gummi besteht in der ursprünglichen Form, der an den neuen > Eckpunkten aufgespannt wird. Gute Idee. Das gibts nämlich fertich als 3D Modeling Programm - beispielsweise Blender. Man macht zuerst das Ausgangs-Polygon und eine 1:1 Abbildung auf die Texturkoordinaten (UV-Mapping). Dann zieht man die (3D) Koordinaten des Poligons einfach in ihre neue Position. Die Textur wird dadurch passend verzerrt. Gimp kennt sowas als "Käfig Transformation" auf Deutsch.
wahrscheinlich kommt hier der gute alte bresenham algorithmus ins spiel… oder man lässt die texturverzerrung irgendein "opengl-geraffel" machen.
Die erste Gratissoftware zur Fotoverzerrung, die ich kenne war "Anmanie" hier ein paar Demobilder, Mona Lisa mit Knollennase u.ä.: http://www.digitalkamera.de/Software/Anmanie/1355.aspx von 2002
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.