Werkzeugkasten für Bildoperationen |
Bilder können durch recht einfache Objekte repräsentiert werden.
Ein Bild ist eine Abbildung von zwei ganzzahligen Koordinaten auf einen oder mehrere Helligkeitswerte aufgefasst
werden. Die interne Darstellung dabei kann beliebig unterschiedlich sein.
Mit so einer einfachen Bildrepräsentation lassen sich auf einfache und elegante
Art viele unterschiedliche Bildmanipulationen realisieren.
|
|
Die einfachste Art der Bildmanipulation ist die punktweise Veränderung der Farb- oder Helligkeitswerte,
wie z.B. Kontrast- und Helligkeitsveränderungen, Gamma-Korrektur und Invertierung.
|
|
Filteroperationen (Weichzeichner, Schärfen) berücksichtigen eine Umgebung eines Punktes
um den neuen Farbwert zu berecchnen.
|
|
Eine weitere Klasse sind die Koordinatentransformationen (Skalieren, Rotieren, Spiegeln, ...).
|
|
Bilder können kombiniert werden (Addition, Multiplikation, Kombination mit α-Kanal).
|
|
|
Kombinationen |
Diese Operationen sollen frei kombinierbar sein.
|
Laden |
Bilder mit den gängigen Bildformaten sollen geladen und gespeichert werden können
|
Anzeigen |
Sowohl die fertigen Bilder als auch die Zwischenergebnisse sollen angezeigt werden können.
|
Oberfläche |
Das Prgramm soll mit einer grafischen Benutzungsoberfläche arbeiten,
auch die Eingabe und die Kombination der Bilder soll durch das Kombinieren von grafischen Elementen realisiert werden.
|
|
|
Programmiersprachen und Werkzeuge |
|
1. Ansatz |
Java 1.5 mit Swing (oder SWT)
|
2. Ansatz |
C++ mit Qt, GTK oder wxWidgets
|
|
|
Umgebung |
lauffähig mindestens unter den Linux Rechenzentrums-Rechnern
|
|
|
etc. |
Beispiel für einfache Bildmanipulationen findet man in vielen Bildmanipulationsprogrammen (Gimp, ImageMagick, xv, ...).
Ein Beispiel für Bilder realisiert als Funktionen befindet sich in den Unterlagen zur Vorlesung Compilerbau
|
|
|