Bildbearbeitungsbibliothek, die eine umgekehrte 3D-Projektion durchführen kann

Ich würde gerne eine Bibliothek finden, die eine einfache, aber echte 3D-Rückprojektion durchführen kann.

Geben Sie bei einem Bild einer flachen Oberfläche, das von einem beliebigen Blickpunkt im Raum aus betrachtet wird, ein flaches 2D-Bild mit entfernter Perspektive zurück, als ob sich die Kamera in der idealen Position direkt vor und in der Mitte des Bildes befunden hätte.

Ein erfundenes Beispiel:
3D-Quellbild 3D-Bild"unprojiziert" an2D-Bild

(Ignorieren Sie das überlagerte Rechteck auf letzterem, ich verwende nur die ersten Bilder, die ich bisher finden kann.)

Ich erwarte keine Wunder. Einige Verzerrungen, Artefakte und Kurven aufgrund der Linsengeometrie sind sicherlich unvermeidlich.

Für die Zwecke dieser Frage muss es eine echte 3D-Manipulation durchführen, die Verkürzung korrigieren und nicht nur das Bild verzerren, indem die vier Ecken eines Rechtecks ​​verschoben werden.

Anforderungen:

  • Plattformübergreifend
  • Low-Level-Sprache wie C oder C++
  • Echte 3D-Manipulation

Bevorzugt, aber nicht erforderlich:

  • Open Source
  • Frei
  • Vollautomatisch ist großartig, aber ich gehe davon aus, dass einige andere Parameter erforderlich sind, z. B. die Koordinaten der vier Ecken im Quellbild.
Ich habe dafür ein SGI IRIX-Befehlszeilentool verwendet, ich muss nur versuchen, mir den Namen zu merken, aber den gibt es! Das war allerdings vor 10 Jahren.

Antworten (1)

Image Magick kann dies tun. Es ist freie Software unter der Apache 2.0 - Lizenz . Es hat eine C-API.

Unter http://www.imagemagick.org/Usage/distorts/#perspective finden Sie Beispiele dafür, wie Sie mit dem Befehlszeilentool tun, was Sie wollen.

Siehe auch http://www.imagemagick.org/script/magick-wand.php für die C-API auf Benutzerebene, die Zugriff auf dieselben Befehle wie convertin C bietet.