Einführung in Visual Computing 186.822 eine gemeinsame Lehrveranstaltung von Walter Kropatsch Bildverarbeitung Werner Purgathofer Computergraphik Robert Sablatnig Computer Vision Für wen ist diese Lehrveranstaltung? Pflicht in den Bachelorstudien Medieninformatik & Visual Computing Softwaretechnik Medizinische Informatik Freifach für alle anderen Vertiefende Übungen im Winter-Semester: Einf.i.d.Computergraphik UE Einf.i.d.dig.Bildverarb. UE (Pflicht nur für Medieninf. & Visual Comp.) W. Kropatsch, W. Purgathofer, R. Sablatnig 1 Was ist Visual Computing? Datenverarbeitung mit Bildern Computergraphik: Beschreibung Bilder Bildverarbeitung: schlechtes besseres Bild Computer Vision: Bilder Beschreibung I/O PROGRAM Beispiel (i:in VAR,: REAL; BEGIN open(file); READ FOR I:=1 TO n DO :=*12-; :=3+ Beschreibung, Information I/O Bild(er) CG + BV + CV = Visual Computing Unterlagen zu CG, CV Skriptum - Tetblätter deutsch bzw. englisch Kurzfassung des Wesentlichen ca. 4 Seiten / Doppelstunde 10 Euro für alle CG+CV-Tetblätter großteils auch downloadbar Verfügbarkeit: jeweils zur Vorlesungseinheit (mit Abo-Karte) W. Kropatsch, W. Purgathofer, R. Sablatnig 2 W. Kropatsch, W. Purgathofer, R. Sablatnig 3 Unterlagen zu BV Skriptum Deutsch Vorlesungsinhalte mit Verweisen auf Literatur ca. 150 Seiten 10 Euro Verfügbarkeit: ab 6.3. vor der LVA (rechtzeitig kommen!) Übungsbeispiele zur Vorbereitung auf Tests Weiterführende Unterlagen Buch zu CG: Shirle; Marschner: Fundamentals of Computer Graphics 3 rd Edition Buch zu BV: Sonka, Hlavac, Bole: Image Processing, Analsis, and Machine Vision 2 nd Edition Buch zu CV: Richard Szeliski: Computer Vision: A Modern Approach http://szeliski.org/book/ W. Kropatsch, W. Purgathofer, R. Sablatnig 4 W. Kropatsch, W. Purgathofer, R. Sablatnig 5 1
Semester-Einteilung: März-April März 5 Purgathofer Kropatsch Sablatnig 6 BV A 7 CV 1 12 CG 1 13 Übg. Übg. Übg. 14 MATLAB Beispiele 1 verfügbar 19 CG 2 20 BV B 21 CV 2 26 CG 3 27 BV C 28 BV D April 16 CG 4 17 BV E 18 CV 3 23 CG 5 24 CV 4 25 Beispiele 2 verfügbar 27 1.Test 1.Test 1.Test Abgabe Beispiele 1 Semester-Einteilung: Mai-Juni Mai 2 CG 6 7 CG 7 Abgabegespräche 8 BV F 9 CV 5 Abgabegespräche 11 Abgabegespräche 14 CV 6 Abgabegespräche 15 BV G Abgabegespräche 16 CV 7 21 CG 8 22 BV H 23 CV 8 30 CG 9 Juni 4 CG 10 5 BV I 6 CV 9 11 CG 11 12 CG 12 13 Reserve Reserve Reserve 15 2.Test 2.Test 2.Test 21 Abgabe Beispiele 2 25 Abgabegespräche 26 Abgabegespräche 27 Ersatztest Ersatztest Ersatztest Abgabegespräche 28 Abgabegespräche 29 Abgabegespräche Fragen? Zur Lösung bieten sich an (in dieser Reihenfolge!) 1. Web 2. KollegInnen 3. TutorInnen 4. zuständiger Assistant: Martin Ilcik Informationen http://www.cg.tuwien.ac.at/....../courses/einfviscomp zuständiger Assistent: Martin Ilcik Sprechstunde: Mo15 h -16 h Favoritenstraße 9, Stiege 2, 5. Stock Zimmer HF 05 09 W. Kropatsch, W. Purgathofer, R. Sablatnig 8 W. Kropatsch, W. Purgathofer, R. Sablatnig 9 Übungsbeispiele Alle Details werden am 13.3. präsentiert. ANMELDUNG zur Lehrveranstaltung: bis 13.3. 3 um 20:0000 Uhr in TISS Ohne Anmeldung keine Teilnahme! Leistungsbeurteilung der VU Übungserfordernisse müssen erfüllt sein + 2 schriftliche Tests getrennte Angaben für BV, CG, CV 27 April genaue Termine rechtzeitig! 15 Juni ( ) 3. Termin = Ersatztest 27 Ersatz falls ein Test versäumt wurde Juni freiwillige Wiederholung (zählt aber dann!) keine weiteren Prüfungstermine (wegen VU!) W. Kropatsch, W. Purgathofer, R. Sablatnig 10 W. Kropatsch, W. Purgathofer, R. Sablatnig 11 2
Leistungsbeurteilung der VU Übungserfordernisse: 6 Beispiele abgeben (ok / nicht ok) 5 von 6 müssen ok sein jedes weitere nicht ok = 1 Note Abzug Tests: 50% der möglichen Punkte notwendig Testtermine später als Vorlesung: 27.4. 17:00-19:30 Uhr 15.6. 17:00-19:30 Uhr Einführung in Visual Computing 186.822 Computergraphik Werner Purgathofer W. Kropatsch, W. Purgathofer, R. Sablatnig 12 Contents of Computer Graphics Part graphics primitives, rasterization graphics pipeline, data structures and models transformations, camera definition, projections clipping, shading viewport transform, visibilit testing ra-tracing, global illumination, path tracing anti-aliasing, teture maps, surface structure curves and surfaces visualization Werner Purgathofer 14 Who needs Computer Graphics? entertainment: games, film, tv industrial design, architecture, landscape arch. marketing, advertisements simulators (training): cars, aircraft, spacecraft... predictive rendering: securit issues, design,... cultural heritage, museums, learning science, medical visualisation... Werner Purgathofer 15 Important Graphics Output Primitives Rasterization of Lines in 2D points, lines polgons, circles, ellipses & other curves (also filled) piel arra operations characters in 3D triangles & other polgons free form surfaces + commands for properties: color, teture, Werner Purgathofer 17 3
Points and Lines point plotting instruction in displa list (random scan) entr in frame buffer (raster scan) line drawing instruction in displa list (random scan) intermediate discrete piel positions calculated (raster scan) jaggies, aliasing Lines: Staircase Effect Stairstep effect (jaggies) produced when a line is generated as a series of piel positions Werner Purgathofer 18 Werner Purgathofer 19 Line-Drawing Algorithms line equation: = m. + b line path between two points: 1 0 m = 1 0 1 }b 0 b = 0 m. 0 0 1 DDA Line-Drawing Algorithm line equation: = m. + b = m. for m <1 = m for m >1 ) 1 0 DDA (digital differential analzer) for =1, m <1 : k+1 = k m 5 sampling points 0 1 Werner Purgathofer 20 Werner Purgathofer 21 DDA Algorithm Principle d = 1 0; d = 1 0; m = d / d; = 0; = 0; drawpiel (round(), round()); for (k = 0; k < d; k++) { += 1; += m; drawpiel (round(), round()} etension to other cases simple Werner Purgathofer 22 Bresenham s Line Algorithm faster than simple DDA incremental integer calculations adaptable to circles, other curves = m. ( k + 1) + b Section of a displa 13 screen where a straight line segment 12 is to be plotted, 11 starting from the 10 piel at column 10 on scan line 11 10 11 12 13 Werner Purgathofer 23 4
Bresenham s Line Algorithm (1/4) Bresenham s Line Algorithm (1/4) = m. ( k + 1) + b k+1 k+1 = k = = m. ( k + 1) + b k = ( k + 1) = = k + 1 m. ( k + 1) b k k Werner Purgathofer k 24 k+1 Werner Purgathofer k+1 25 = = 2m. ( k + 1) 2 k + 2b 1 k+1 Bresenham s Line Algorithm (2/4) = = 2m. ( k + 1) 2 k + 2b 1 m = / = 1 0, = 1 0 ) decision parameter: p k =. ( ) = k = 2. k 2. k + c same sign as ( ) Bresenham s Line Algorithm (3/4) current decision value: p k =. ( ) = 2. k 2. k + c net decision value: p =.. k+1 2 k+1 k+1 1 c+ c +0 + p k 2. k + 2. k c = = p k + 2. ( k+1 k ) starting decision value: p 0 = 2 Werner Purgathofer k+1 26 Werner Purgathofer 27 Bresenham s Line Algorithm (4/4) 1. store left line endpoint in ( 0, 0 ) 2. draw piel ( 0, 0 ) 3. calculate constants,, 2, 2 2, and obtain p 0 =2 4. At each k along the line, perform test: if p k <0 then draw piel ( k +1, k ); p k+1 = p k + 2 else draw piel ( k +1, k +1); p k+1 = p k + 2 2 5. perform step 4 ( times. Werner Purgathofer 28 Bresenham: Eample k p k ( k+1, k+1 ) (20,41) 0-4 (21,41) 1 2 (22,42) 2-12 (23,42) 3-6 (24,42) 4 0 (25,43) 5-14 (26,43) 6-8 (27,43) 7-2 (28,43) 8 4 (29,44) 9-10 (30,44) 46 = 10, = 3 45 44 43 Werner Purgathofer 29 42 41 40 20 21 22 23 24 25 26 27 28 29 30 p 0 =2 if p k <0 then draw piel ( k +1, k ); p k+1 = p k + 2 else draw piel ( k +1, k +1); p k+1 = p k + 2 2 5