FreakLab
Inhaltsverzeichnis
Einleitung
FreakLab ist ein Matlab-GUI zur Bearbeitung von JPG-Bildern. Es können mathematische Transformationen der Bildgeometrie und der RGB-Farbwerte vorgenommen werden. Dabei entstehen 'freakige' Resultate, daher der Name dieses Tools.
Funktionsweise
Es können JPG-Bilder geöffnet, bearbeitet und abgespeichert werden. Das Resultat einer eingegebenen Transformation ist im 'Preview'-Fenster sichtbar. Mit 'Anwenden' wird das Bild im Hauptfenster ans Preview angeglichen. Dieses Resultat kann mit 'Okay' übernommen und mit 'Rückgängig verworfen werden. Ansonsten ist die Bedienung des Tools selbsterklärend.
Hier nun eine Beschreibung der hinter den 4 verschiedenen Bedienfeldern stehenden Mathematik:
1) Lineare Abbildung
Jedem Pixel eines Bildes entspricht ein Element eines 2D-Vektorraumes. Isomorphismen zwischen zwei solchen Räumen können durch 2 x 2 Matrizen dargestellt werden. Dementsprechend kann eine Matrix auf ein Urbild eine Lineare Transformation ausüben. Dies kann Stauchungen, Streckungen,Verdrehungen oder Spiegelungen des Bildes bedeuten. Auch Mischungen dieser Elementaroperationen sind möglich. In diesem Bedienfeld kann der Benutzer verschiedene Elemtaroperationen ausüben, deren Stärke durch Slider regelbar ist. Die zugehörige Abbildungsmatrix wird angezeigt und kann auch modifiziert werden, sodass allgemeinere Mischabbildungen möglich sind.
2) Holomorphe Abbildung
Hier werden den Pixeln Elemente der komplexen Zahlenebene zugewiesen. Abbildungen zwischen komplexen Zahlenebenen sind komplexe Funktionen. Darunter zeichnen sich die differenzierbaren Funktionen besonders aus. Sie führen zwar keine linearen Abbildungen mehr aus, jedoch folgt aus der Stetigkeit des Urbildes die (fast-überall-) Stetigkeit des Bildes. Man nennt solche Funktionen auch holomorph.
Eine holomorphe Funktion ist immer unendlich oft differenzierbar und lässt sich durch Potenzreihen darstellen (Laurent-Reihen), also als Summe von Polynomen mit unterschiedlichen Exponenten. Im Programm kann jede holomorphe Funktion in der Weise approximiert werden, dass bis zu 9 Summanden als Polynome mit unterschiedlichem Vorfaktor, Nullstelle und Exponent eingegeben werden können.
Der Exponent darf darüber hinaus sogar nichtganzzahlig sein. Außerdem können der Urbild- und der Bild-Zoomfaktor über Slider und Textboxen eingegeben werden. Desweiteren kann auf ein Bild umgeschalten werden, das sich aus einem Urbild ergibt, das periodisch fortgesetzt wird
3) Allgemeine komplexe Abbildung
Funktioniert im Prinzip gleich wie 1), nur das statt holomorphen Funktionen, die die Stetigkeit des Urbildes erhalten, hier in Formelzeilen beliebige komplexe Funktionen in Matlab-Syntax eingegeben werden können, also auch nichtstetige. Das ist weniger anschaulich, jedoch nimmt die Vielfalt an erzielbaren Effekten erheblich zu.
Die Formel setzt sich aus bis zu 9 Formelzeilen zusammen, zunächst ist nur eine Zeile vorhanden, je nach Bedarf können dann aber bis zu 8 weitere Zeilen erzeugt werden. Der Inhalt einer Zeile wird einfach nahtlos an die vordere Zeile angehängt. Die Formelzeile wird rot hinterlegt, sobald bei der Ausführung der Gesamtformel ein Fehler auftritt.
Aus einem 'Formelbaukasten' können durch Klick Standardfunktionen am rechten Ende der Formel in der Zeile hinzugefügt werden.
4) Farbabbildung
Bislang ging es um Geometrische Transformationen der Bilder. Dabei wurden den einzelnen Pixeln komplexe Zahlen oder Vektoren zugeordnet. Da die Farben des Bildes durch Zahlentripel an jedem Pixel repräsentiert werden, können auch diese einer Transformation unterzogen werden, was auf interessante Farbeffekte führt.
Die Überlegung ist also: [Farbwert an einem Pixel nachher] = f_beliebig([Farbwert an einem Pixel vorher])
Dazu gibt es gleich wie in 3) Zeilen für die Eingabe einer Formel, ein Drop-Down-Menü zur Auswahl der Zeile und Buttons zum Löschen oder Hinzufügen von Zeilen sowie einen Formelbaukasten. Allerdings treten 3 unterschiedliche Formeln auf, da für jeden Farbkanal (Rot, Grün oder Blau) eine eigene Formel festlegbar sein soll.
Desweiteren ist es interessant die Farbkanäle zu vertauschen. Bei drei Farbkanälen gibt es 6 Vertauschungspermutationen.
Für Fragen oder Anregungen stehe ich gerne zur Verfügung.
Download
Hinweis: FreakLab.m ist das ausführbare Hauptfile.