Aufgabe 1: Bildrepräsentation und Bilddatenformate

 
a) Repräsentation von Bilddaten im Computer

Aufgabestellung:  Es soll eine Klasse (C++/Java) entworfen werden mit der sich Grauwert- und Farbbilder beliebiger  Größe im Computerspeicher repräsentieren lassen.

Informationen:

 
Bilddaten werden in der Regel als Matrix  bzw. zweidimensionales Array im Computer repräsentiert. Obige Abbildung zeigt ein Grauwertbild und einen Ausschnitt des Bildes in Matrixdarstellung. Jede Zahl der Matrix repräsentiert dabei das korrespondierende Pixel  im Bild. Bei Grauwertbildern verwendet man einen Wertebereich von 0-255: 0 entspricht dabei der Farbe "schwarz", während 255 für "weiss" steht.
 

Die Repräsentation von Farbbildern unterscheidet sich nur dadurch, daß mehrere Kanäle gespeichert werden müssen. D.h. man verwendet bei RGB-Farbbildern drei Matrizen (R, G, B). Auch hier umfasst der Wertebereich der einzelnen Matrixelemente 0-255.
 

b) Bildformate

Aufgabenstellung:  Die unter a) entworfene Klasse soll um Routinen zum Einlesen und zur Abspeicherung von Bilddaten im PGM- und PPM-Format erweitert werden.

Informationen:

PGM (portable graymap file format) ist ein einfaches Dateiformat für Grauwertbilder. Im wesentlichen werden die Anzahl der Grauwerte, die Größe des Bildes sowie die einzelnen Pixelwerte in einer Datei abgelegt.  Genaue Angaben zu PGM finden sich hier.

PPM (portable pixmap file format) ist ein einfaches Dateiformat für Farbbilder. Im Unterschied zu PGM wird nicht ein einzelner Wert pro Pixel abgelegt, sondern es werden die Werte der verschiedenen Kanäle (R, G, B) aufeinanderfolgend gespeichert. Genaue Angaben zu PPM finden sich hier.

Hinweise: