Internationaler Studiengang Medieninformatik

Ähnliche Dokumente
David Obermann Fragen zu Grundlagen Digitaler Medien SoSe 2012 (Teil II)

Programmieren: Bildbearbeitung

Nachholklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415

Einführung in die Programmierung und Programmiersprachen (OOP)

FARBEN IM INTERNET FARBWERTE, FARBTIEFEN IN DER BILDBEARBEITUNG

Graphic Coding. Klausur. 9. Februar Kurs A

Klausur "C#" WS 2012/2013

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Prüfung Programming: Bildbearbeitung

Klausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre.

Informatik für Ingenieure (InfIng)

BILDBEARBEITUNG IM UNTERRICHT

Klausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java im Wintersemester 2015/16

Digitale Bildbearbeitung und Fotografie. Dozenten: Arne Scheffer, Olaf Glaser

Digitale Bildbearbeitung und Fotografie. Dozenten: Arne Scheffer, Olaf Glaser

Digitale Bilder. Ein Referat von Jacqueline Schäfer und Lea Pohl Am

Arbeitsblatt 6: Programmierung geometrischer Figuren

Klausur "ADP" SS 2012

Probeklausur: Einführung in die objektorientierte Programmierung mit Java 15WS

Felder. M. Jakob. 28. April Gymnasium Pegnitz

1 Robert Klaßen: Photoshop Elements 8 für digitale Fotos

Klausur Grundlagen der Programmierung

FARBTIEFE / KANÄLE 1 5

1 Robert Klaßen: Photoshop Elements 7 für digitale Fotos

Probeklausur: Programmierung WS04/05

Grundlagen digitaler Bildbearbeitung

Klausur "ADP" SS 2015

Farbtechnik und Raumgestaltung/EDV

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Klausur "ADP" SS 2016

Digitale Bildverarbeitung (DBV)

Sind Sie in einem Bachelor- oder Lehramts-Studiengang eingeschrieben (Antwort bitte ankreuzen)? Ja/Nein

Farbmetrik & Farbmanagement. Sebastian J. Fricke Mediengestalter für Digital- und Printmedien Medieninformatikstudent

Praktikum Sensitometrie

PROCESSING STRUKTUR UND INPUT. Created by Michael Kirsch & Beat Rossmy

Arrays Fortgeschrittene Verwendung

Aufgabenblatt 5. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Farbtiefe. Gängige Farbtiefen

Aufgabenblatt 1. Kompetenzstufe 2. Allgemeine Informationen zum Aufgabenblatt:

Klausur Programmieren 1 SS 17 Prof. Dr.-Ing. Jürgen Brauer

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Klausur Informatik I WS 2006/2007

Grundlagen von C# - 2

Universität Duisburg - Essen

pue13 January 28, 2017

Anweisungen zur Ablaufsteuerung

5. Bildauflösung ICT-Komp 10

Pangea Ablaufvorschrift

Farben sind im Webdesign wichtig z.b. für die Schriftfarbe oder den Hintergrund.

Klausur Einführung in die Informatik I für Elektrotechniker 16. Juli 2003

Lösungshinweise/-vorschläge zum Übungsblatt 4: Software-Entwicklung 1 (WS 2017/18)

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

Universität Duisburg - Essen

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Kurze Anleitung für das Bilder- Bearbeitungsprogramm GIMP

Wuerfel - augenzahl: int + Wuerfel() + wuerfeln() + gibaugenzahl(): int

Algorithmen & Datenstrukturen 1. Klausur

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Intensivübung zu Algorithmen und Datenstrukturen

Klausur Programmieren 1 SS 17 Prof. Dr.-Ing. Jürgen Brauer

2. Semester, 2. Prüfung, Lösung

WM01 - DEMO - ECDL Image Editing

Java Kurzreferenz Für Fortgeschrittene

Im Original veränderbare Word-Dateien

Videotutorials von Frank Weber - fotologbuch.de

Graustufenumwandlung mit Photoshop / Gimp

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

Einstieg in die Informatik mit Java

FARB- UND TONWERTKORREKTUR 1 6

St.Gallische Kantonsschulen Aufnahmeprüfung 2011 Gymnasium. Kandidatennummer: Geburtsdatum: Note: Aufgabe Punkte

Digitale Bildbearbeitung und Fotografie. Dozenten: Arne Scheffer

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Übungsblatt 1. Java Vorkurs (WS 2017)

Aufgabe 8 E: Raumvorstellungsvermögen

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Bilder im Zusammenhang mit Geoinformatik sind u.a.: Luftbilder, Satellitenbilder Synthetische Bilder (z.b. digitale Oberflächenmodelle)

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

Algorithmen und Datenstrukturen

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Programmieren in Java -Eingangstest-

Einführung in die Programmierung für NF MI. Übung 04

Probeklausur Digitale Medien

Objektorientierte Programmierung Studiengang Medieninformatik

Ajdovic/Mühl Farbmodelle FARBMODELLE

Lösbarkeit linearer Gleichungssysteme

Einführung Aufgabe 1 - Bildverarbeitung. Anton Augsburg 2011

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

INFORMATIK FÜR BIOLOGEN

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Auslesen einer Bitmap-Ressource: 16bpp BGR565

Transkript:

HTW Berlin Prof. Dr. Kai Uwe Barthel Nachname: Vorname: Codename: Matr. Nr: Internationaler Studiengang Medieninformatik Grundlagen digitaler Medien Sitzplatz: Punkte: Note: Nachklausur WS09/10 26. 3. 2010 Bitte lesen: Es dürfen keine Unterlagen verwendet werden. Bitte beantworten Sie die Fragen kurz und präzise. Mehrdeutige Antworten werden als falsch bewertet. Antworten mit Bleistift werden nicht gewertet. Die maximale Punktzahl ist in Klammern angegeben. Bei Platzproblemen verwenden Sie bitte die Rückseite und kennzeichnen Sie dies durch einen Pfeil (!). Viel Erfolg! 1.! (6) Farbüberlagerung: Die folgende Tabelle soll drei Ebenen in Photoshop darstellen. Bitte tragen Sie die RGB-Werte entsprechend des Namens in der rechten Spalte in die folgende Tabelle ein. R G B Deckkraft Name Ebene 2 60 % Weiß Ebene 1 50 % Grün Hintergrund - Magenta Bitte berechnen Sie die entstehenden RGB-Werte der Farbe, die sich durch diese Überlagerung ergibt. Welche Farbe würde entstehen? Bitte bezeichnen Sie diese Farbe mit einem Farbnamen (wie z.b. Rosa ).

2.! (8) Die folgenden Abbildungen zeigen links und rechts Farbverteilungen in zwei Farbräumen (oben jeweils die ursprüngliche Verteilung). Der Ursprung der Würfel ist die linke untere Ecke. Welche Farbräume werden links und rechts dargestellt? Beschriften Sie bei den Würfeln in der 3. Zeile die Achsen. Bitte nennen Sie die Veränderung / Manipulationen der Bilder, die zu den veränderten Farbverteilungen in der 2. bzw. 3. Zeile geführt haben. Farbraum: Farbraum: Originalverteilung Originalverteilung Veränderung: Veränderung: Veränderung: Veränderung: 2

3.! (4) Welche Werte müsste man in Photoshop unter Eigener Filter eintragen, um a) Ein Bild um 2 Pixel nach rechts zu verschieben? b) Ein nur in horizontaler Richtung weich zu zeichnen (Bewegungsunschärfe), ohne die Helligkeit des Bildes zu verändern? Bitte tragen Sie jeweils alle Werte in die obigen Felder ein. 4.! (4) Bei der Extraktion der RGB-Werte aus Integer-Werten werden Maskierungen und Bitshift-Operatoren verwendet. Was ergibt sich bei folgenden Rechnungen? Geben Sie den Ergebniswert jeweils als Dezimalwert an 6 4 = 0xFF & 0xA310 = (1 << 3) = 0x20 + 0x6 = 3

5.! (4) Was muss man (programmtechnisch) machen, um bei einem YCbCr-Bild a) den Kontrast zu verdoppeln bzw. b) ein Schwarz-Weiß-Bild (ein Graustufenbild) zu erzeugen, c) den Farbvektor um 180 zu drehen? Hierbei seien Y, Cb und Cr die Originalfarbwerte. a) Y neu = b) Y neu = c) Y neu = Cb neu = Cb neu = Cb neu = Cr neu = Cr neu = Cr neu = 6.! (8) Für ein PDA soll ein Display entwickelt werden, das möglichst viele Pixel habe, die Maximalanzahl von 1000000 Pixeln aber nicht überschreite. Das Höhen- Breitenverhältnis der Pixelanzahl des Displays mit quadratischen Pixeln soll dabei genau 3:4 betragen. Beachten Sie, dass es nur ganze Pixel geben kann. Die Abmessungen des Displays seien: Höhe = 3 Inch und Breite = 4 Inch. Hierzu die folgenden Fragen: (Bitte mit Rechnung, nicht nur die Ergebnisse angeben) a) Wie groß ist die Displayfläche in cm 2? b) Wie viele Pixel hat das Display in horizontaler und vertikaler Richtung? c) Wie groß muss der Bildschirmspeicher bei einer True-Color-Anzeige sein (in kb)? d) Welche Auflösung hat das Display? 4

7.! (10) Geben Sie Java-Code an, mit dem Sie in einem Farbbild einen Farbverlauf realisieren, indem Sie die Pixelwerte des Bildes entsprechend setzen. Der Verlauf sehe folgendermaßen aus: Das linke Viertel sei gelb, das rechte Viertel sei blau. Dazwischen gebe es einen Verlauf von gelb über grau (in der Mitte) zu blau. gelb gelb grau blau blau Zeichnen Sie die in die folgenden Diagramme einzelnen die Verläufe für die Komponenten R, G und B R G B Bitte vervollständigen Sie den folgenden Code so, dass dieser Farbverlauf entsteht. Hierbei sei pixels ein Array mit den Pixeln eines width * height großen ARGB-Farbbildes. int width=400, height=80; int[] pixels = new int[width*height]; for(int y=0; y<height, y++) { for(int x=0; x<width, x++) { 5

8.! (6) Bei einem Bild werde eine Tonwertkorrektur (ein Bildpunktoperator) angewendet. Bitte zeichnen Sie rechts die zu der Tonwertkorrektur dazugehörige Gradationskurve und geben Sie bitte kurz an, was die Tonwertkorrektur bewirkt. Zeichen Sie unten das entstehende neue Histogramm. 9.! (4) Unten sind vier Histogramme abgebildet, wobei oben das Originalhistogramm dargestellt wird. a) Wie sieht dieses Original wohl aus (was zeichnet es aus)? (1) b) Was wurde mit dem Bild gemacht (bzw. wie sieht das Bild jetzt aus?), wenn sich nach der Operation jeweils das untere Histogramm A, B bzw. C ergibt? (3) Original: A B C 6

10.!(8) Was bewirken die folgenden Überblendungen von Image-Stacks (Filmen) A und B? A B // Arrays fuer die einzelnen Bilder int[] pixels_b, pixels_a, pixels_erg; //... // Schleife ueber alle Bilder for (int z = 1; z <= length; z++) { pixels_b = (int[]) stack_b.getpixels(z); pixels_a = (int[]) stack_a.getpixels(z); pixels_erg = (int[]) stack_erg.getpixels(z); int pos = 0; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++, pos++) { int ca = pixels_a[pos]; int ra = (ca & 0xff0000) >> 16; int ga = (ca & 0x00ff00) >> 8; int ba = (ca & 0x0000ff); int cb = pixels_b[pos]; int rb = (cb & 0xff0000) >> 16; int gb = (cb & 0x00ff00) >> 8; int bb = (cb & 0x0000ff); if (methode == 1) { if (x < y ) pixels_erg[pos] = pixels_a[pos]; else pixels_erg[pos] = pixels_b[pos]; if (methode == 2) { if ( y > (z-1) * (height-1) / (length-1.) ) pixels_erg[pos] = pixels_b[pos]; else pixels_erg[pos] = pixels_a[pos]; if (methode == 3) { int r = ra * rb / 255; int g = ga * gb / 255; int b = ba * bb / 255; pixels_erg[pos] = 0xFF000000 (r << 16) (g << 8) b; Zeichnen Sie für die Methoden 1 und 2 in den nächsten zwei Zeilen ein, was im Ergebnisfilm zu den unterschiedlichen Zeitpunkten zu sehen sein wird. Zeitpunkt Anfang Mitte Ende methode = 1 methode = 2 7

Wie wird das Ergebnis bei Methode 3 in etwa aussehen? 11.!(8) Der folgende Java-Code realisiert eine Methode, die jedoch diverse Fehler (Logikfehler und Syntaxfehler) enthält. Beschreiben Sie ganz kurz, was die Methode bewirken soll und geben Sie die Fehler an. D.h. geben Sie jeweils die Zeilennummer des fehlerhaften Codes an und beschreiben Sie, was daran falsch ist. 1 void fkt (int[] pixels, int width, height) { 2 int width_neu = 201, height_neu = 301; 3 int[] pixels_neu = new int[width_neu*height_neu]; 4 double faktorx = width / width_neu; 5 double faktory = height / height_neu; 6 for (int y=0; y<=height_neu; y++) { 7 for (int x=0; x<=width_neu; x++) { 8 int pos = (int) (y * faktory * width + x * faktorx); 9 int c = pixels[pos]; 10 r = (c & 0xff0000) >> 16; 11 g = (c & 0x00ff00) >> 8; 12 b = (c & 0x0000ff); 13 int pos_neu = y * width_neu + x; 14 pixels_neu[pos_neu] = 0xFF000000 (b << 16) (g << 8) r; 15 16 17 12.! (6) Zwei Ebenen werden in Photoshop überlagert. Beschreiben Sie, bzw. zeichnen Sie, wie die Ergebnisbilder aussehen. a) b) c) 8