Tonnen- verzeichnung | Kissen- verzeichnung | Schnurrbart- verzeichnung |
Die kürzliche Beschäftigung mit Brückenbögen und deren funktionaler (funktioneller?) Rückmodellierung
(sind es Parabeln?,
siehe →hier) führte mich auf das Problem, daß man eigentlich keine wirklich idealen Fotos von Brücken machen kann,
die räumliche Ebenen auch eben abbilden, alle Geraden als Geraden etc. Man müßte die Bilder entzerren, fluchtende Linien wieder
geradeziehen, dabei die Verkürzung herausrechnen. Dabei stieß ich nolens volens auf die Sache mit den typischen Bildverzeichnungen
(Tonnen- und Kissen-), über deren Mathematik bzw. deren mathematische Modellierung immerhin einiges zu finden ist.
Vor einiger Zeit hatte ich (für jemand, der (oder die?) sie dann nicht haben wollte) eine günstige alte digitale Nikon-Spiegelreflexkamera gekauft mit einem Objektiv, das fürchterlich verzeichnet und für sowas wie Architektur eigentlich überhaupt nicht geeignet ist. Von jener Jemandperson übrigens habe ich ein fürchterlich verzeichnetes Foto (meines Wissens auch mit einer Nikon geknipst, aber nicht von mir) im Internet entdeckt, das ich zum Testen des folgenden Programms verwendet habe. Und ein anderes aus selber Hand mit einem dort ebenfalls schrecklich verzeichneten Kollegen, dessen wirkliche Gesichtsform mir als Referenz gut vertraut ist. Das Programm ist in der Lage, ihn einwandfrei wiederherzustellen, und andere erkennt man plötzlich auch.
Nun, die Geraden und die Verzeichnung brachten mich auf den Gedanken, ob man nicht beides kombinieren könnte, d.h. anhand einiger Punkte
eines verzeichneten Bildes, die in echt eigentlich auf einer Geraden liegen (Haus- oder Dachtkanten, Lichtmasten o.ä.), die Koeffizienten des
Distortions
modells (siehe den englischen Wikipediaartikel und unten auf dieser Seite) rekonstruieren könnte. Nun: gedacht, getan.
Vier (oder wahlweise auch nur drei) blaue Punkte sollen also auf einer verzeichneten
Gerade liegen, d.h. auf dem verzeichneten Bild einer original geraden Strecke.
Das Programm auf dieser Seite berechnet aufgund der Lage dieser vier Punkte eine Bildentzerrung so, daß die zugehörigen entzerrten vier Punkte tatsächlich auf einer Geraden liegen.
Man kann die Punkte mit der Maus verschieben, drehen und zoomen. Es wird optional zur Kontrolle ein original orthogonale Netz mit der berechneten Verzeichnung abgebildet. Ebenso optional wird die Zuordnung zwischen verzeichneter und rekonstruierter Radialdistanz geplottet. (Die Winkelhalbierende entspricht keiner Verzeichnung.)
Unterhalb der Graphik finden sich die Funktionen zum Laden einer Bilddatei, zum Berechnen des (großen) unverzerrten Bildes und auch
zum (indirekten) Exportieren.
Das ist hier mit Javascript natürlich alles nicht so schnell
wie in einem professionellen Bildbearbeitungsprogramm, aber immerhin...
Anmerkungen
Das hier implementierte mathematische Modell ist
Das Modell ist sehr sensibel; leichte Abweichungen von der Geraden gereichen oft zur Analyse einer überraschend deutlichen Verzeichnung. Vielleicht sollte man über mehrere Referenzgeraden mitteln. Idee für später... Bei der Anwendung auf echte Fotos, die man hereinladen kann (drag&drop sollte auch funktionieren) bedarf es (wie auch bei der Berechnung des verzeichneten Netzes) der inversen Rechnung, denn man berechnet für jeden Bildpunkt des korrigierten Bildes den Quellpunkt in der verzeichneten Vorlage, nicht umgekehrt (was zwangsläufig zu Bildlücken oder Überdeckungen führt). Für das angegebene Modell mit zwei Parametern ist dazu für jeden Bildpunkt eine Gleichung vierten Grades zu lösen (hier wird numerisch per Newtonverfahren approximiert), für drei Punkte nur eine quadratische.
© Arndt Brünner, 16. 11. 2023
Version: 20. 11. 2023