FreakLab

Aus Physik
Zur Navigation springen Zur Suche springen

Einleitung

FreakLab ist ein Matlab-GUI zur Bearbeitung von JPG-Bildern. Es können mathematische Transformationen der Bildgeometrie und der RotGrünBlau-Farbwerte vorgenommen werden.

Funktionsweise

Zur Bearbeitung der Bilder stehen 4 verschiedene Bedienfelder zur Verfügung:

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 Bild 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 auch allgemeinere Mischabbildungen möglich sind.

2) Holomorphe Abbildung

In FreakLab_opt1.m entspricht jedem Pixel eines Bildes ein Element eines 2D-Vektorraumes. 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. Dieses Skript führt also nunmehr nichtlineare aber weiterhin stetige Bildtransformationen mit interessanten Resultaten aus.

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. Hier 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

In FreakLab_opt2.m wird das Konzept der komplexen Abbildung erklärt und verwendet. Dieses Skript funktioniert im Prinzip gleich, nur das hier 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 macht 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. Das Handling der Zeilen funktioniert gleich wie das Handling der Summanden in FreakLab_opt2.m. Die Formelzeile wird rot hinterlegt, sobald bei der Ausführung der Gesamtformel ein Fehler auftritt. Wie man das Argument der Formel nennt, ist egal, wichtig ist nur, dass es nur einen Variablenname innerhalb der ganzen Formel gibt. Sobald eine gültige Formel eingegeben wurde erfolgt der Update des Preview-Bildes.

Aus einem 'Formelbaukasten' können durch Klick Standardfunktionen am rechten Ende der Formel in der Zeile hinzugefügt werden. Die Zeile verfügt über eine Sicherung gegen 'zu lang werden'.

Auch hier können der Urbild- und der Bild-Zoomfaktor über Slider und Textboxen eingegeben werden. Ebenso kann auf ein Bild umgeschalten werden, das sich aus einem Urbild ergibt, das periodisch fortgesetzt wird.

4) Farbabbildung

In den Skripten FreakLab_opt2.m bis FreakLab_opt3.m ging es um Geometrische Transformationen der Bilder. Dabei wurden den einzelnen Pixeln komplexe Zahlen oder Vektoren zugeordnet. Da auch die Farben des Bildes durch Zahlentripel an jedem Pixel repräsentiert werden, können auch diese einer Transformation unterzogen werden, was in diesem Fall auf interessante Farbeffekte führt.

Die Logik ist also [Farbwert an einem Pixel nachher] = f_beliebig([Farbwert an einem Pixel vorher])

Dazu gibt es gleich wie in FreakLab_opt3.m 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. Durch das popupmenu4 wird der Farbkanal ausgewählt.

Desweiteren ist es interessant die Farbkanäle zu vertauschen. Das geschieht mit beim Klick auf das popupmenu5. Bei drei Farbkanälen gibt es 6 Vertauschungspermutationen, dementsprechend verfügt das Menü über 6 Einträge.

Download

Quellen, Literatur