ebook img

Computergrafik und Bildverarbeitung alles für Studium und Praxis, Bildverarbeitungswerkzeuge, Beispiel-Software und interaktive Vorlesungen online verfügbar ; mit 378 Abbildungen PDF

879 Pages·2007·51.28 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Computergrafik und Bildverarbeitung alles für Studium und Praxis, Bildverarbeitungswerkzeuge, Beispiel-Software und interaktive Vorlesungen online verfügbar ; mit 378 Abbildungen

Leserstimmen zu vorangegangenen Auf lagen: WOW... Endlich mal wieder ein Buch, das makelos ist „So begeistert war ich schon lange nicht mehr von einem Buch. Wer schon mal ein Buch von Herrn Haberacker gelesen hat, weiB was Ihn erwartet. Fundierte, tiefe Informationen und ein guter, klarer Schreibstil. Dieses Talent scheint auch Herr Nischwitz zu besitzen. Das komplette Buch liest sich flussig und ist sehr gut verstandlich." M.Sc, Dipl-lnf. Dark Habits, Berlin Ein „Muss'' fur Studium und industrlelle Praxis! „Dieses sehr umfassende Buch ersetzt viele andere, die sich entweder nur mit Computergrafik oder aber mit Bildverarbei- tung beschaftigen. Vom Aufbau her ist es vorbildlich struktu- riert." Prof. Dr. Ulla Kirch-Prinz, FH Munciien Aus dem Bereich IT erfolgreich lernen Lexikon fiir IT-Berufe Grundkurs Computernetze von Peter Fetzer und Bettina Schneider von Jurgen Scherff Grundkurs IT-Berufe Grundkurs Verteilte Systeme von Andreas M. Bohm und Bettina Jungl<unz von Gunther Bengel Java fur IT-Berufe Methoden wissensbasierter Systeme von Wolf-Gert Mattiiaus von Christoph Beierle und Gabriele Kern-lsberner PrufungsvorbereitungfiJr IT-Berufe Grundkurs Mobile Kommunikationssysteme von IVIanfred Wunsche von Martin Sauter Grundlegende Algorithmen Grid Computing von Volker Heun von Thomas Barth und Anke Schiill Algorithmen ftir Ingenieure - realisiert Grundkurs Codierung mit Visual Basic von Wilfried Dankmeier von Harald Nahrstedt Grundkurs Wirtschaftsinformatik Algorithmen und Problemlosungen mit C++ von Dietmar Abts und Wilhelm Mulder von Dorina Logofatu Grundkurs Theoretische Informatik Grundkurs Programmieren mit Delphi von Gottfried Vossen und Kurt-Ulrich Witt von Wolf-Gert Matthaus Anwendungsorientierte Grundkurs Visual Basic Wirtschaftsinformatik von Sabine Kamper von Paul Alpar, Heinz Lothar Grob, Peter Weimann und Visual Basic fiir technische Anwendungen Robert Winter vonjiirgen Radel Business Intelligence - Grundlagen Grundkurs Smalltalk - und praktische Anwendungen Objektorientierung von Anfang an von Hans-Georg Kemper, Walid Mehanna und von Johannes Brauer Carsten Linger Grundkurs Software-Entwicklung mit C++ Grundkurs Geschaftsprozess-Management von Dietrich May von Andreas Gadatsch Programmieren lernen mit Java ITIL kompakt und verstandlich von Erwin Merker und Roman Merker von Alfred Olbrich Grundkurs Java-Technologien BWL kompakt und verstandlich von Erwin Merker von Notger Carl, Rudolf Fiedler, William Jorasz und Man fred Kiesel Java ist eine Sprache von Ulrich Crude Grundkurs Mediengestaltung Middleware in Java von David Starmann von Steffen Heinzl und Markus Mathes Grundkurs Web-Programmierung Grundkurs Computergraf ik mit Java von GiJnter Pomaska von Frank Klawonn Web-Programmierung Das Linux-Tutorial - Ihr Weg von Oral Avci, Ralph Trittmann und Werner Mellis zum LPI-Zertifikat Grundkurs MySQL und PHP von Helmut Pils von Martin Pollakowski Rechnerarchitektur Logistikprozesse mit SAP R/3® von Paul Herrmann von Jochen Benz und Markus Hoflinger Grundkurs Datenbankentwurf Grundkurs SAP R/3® von Helmut Jarosch von Andre Maassen, Markus Schoenen, Detlev Frick Datenbank-Engineering und Andreas Gadatsch von Alfred Moos Controlling mit SAP® Grundkurs Datenbankentwicklung von Gunther Friedl, Christian Hilz und Burkhard Pedell von Stephan Kleuker SAP®-gestutztes Rechnungswesen Grundkurs Relationale Datenbanken von Andreas Gadatsch und Detlev Frick von Rene Steiner Kostentragerrechnung mit SAP R/3® Grundlagen der Rechnerkommunikation von Franz Klenger und Ellen Falk-Kalms von Bernd Schijrmann Masterkurs Kostenstellenrechnung mit SAP® Netze - Protokolle - Spezifikationen von Franz Klenger und Ellen Falk-Kalms von Alfred Olbrich Masterkurs IT-Controlling Grundkurs Spracherkennung von Andreas Gadatsch und Elmar Mayer von Stephan Euler Computergrafik und Bildverarbeitung von Alfred Nischwitz, Max Fischer und Peter Haberacker www.vieweg.de Alfred Nischwitz Max Fischer Peter Haberacker Computergrafik und Bildverarbeitung Alles fur Studium und Praxis - Bildverarbeitungswerkzeuge, Beispiel-Software und interaktive Vorlesungen online verfiigbar Mit 378 Abbildungen 2., verbesserte und erweiterte Auflage vieweg Bibliografische Information Der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet uber <http://dnb.d-nb.de> abrufbar. Hochste inhaltliche und technlsche Qualitat unserer Produkte ist unser Ziel. Bei der Produktion und Auslieferung unserer Biicher wollen wir die Umwelt schonen: Dieses Buch ist auf saurefreiem und chlorfrei gebleichtem Papier gedruckt. Die EinschweiBfolie besteht aus Polyathylen und damit aus organischen Grundstoffen, die weder bei der Herstellung noch bei der Verbrennung Schadstoffe freisetzen. Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgend- elner Art verbunden. Der Autor ubernimmt infolgedessen keine Verantwortung und wird keine dar- aus folgende oder sonstige Haftung ubernehmen, die auf irgendelne Art aus der Benutzung dieses Programm-Materials oderTeilen davon entsteht. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne von Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten waren und daher von jedermann benutzt werden durfen. 1. Auflage 2004 Diese Auflage erschien unter dem Titel „Masterkurs Computergrafik und Bildverarbeitung". 2., verbesserte und erweiterte Auflage Marz 2007 Alle Rechte vorbehalten © Friedr. Vieweg & Sohn Verlag | GWV Fachverlage GmbH, Wiesbaden 2007 Lektorat: Sybille Thelen / Andrea BroBler Der Vieweg Verlag ist ein Unternehmen von Springer Science+Business Media. www.vieweg.de Das Werk einschlieBlich aller seiner Telle ist urheberrechtlich geschutzt. Jede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulassig und strafbar. Das gilt insbesondere fur Vervielfaltigungen, Ubersetzungen, Mikroverfilmungen und die Ein- speicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Ulrike Weigel, www.CorporateDesignGroup.de Druck und buchbinderische Verarbeitung: Tesmska Tiskarna, a. s. Gedruckt auf saurefreiem und chlorfrei gebleichtem Papier. Printed in Czech Republic ISBN 978-3-8348-0186-9 Vorwort Moderne Computer sind in unserer Zeit weit verbreitet. Sie werden kommerziell und privat zur Bewaltigung vielschichtiger Aufgaben eingesetzt. Als Schnittstelle zur Hardware dienen grafische Betriebssysteme, mit denen der Benutzer bequem mit dem System kom- munizieren kann. Die meisten Anwendungen prasentieren sich ebenfalls in grafischer Form und begleiten so den Anwender bei der Erledigung seiner Aufgaben. Viele beniitzen dabei das Computersystem wie ein praktisches Werkzeug und freuen sich, wenn alles gut funktioniert, oder argern sich, wenn es nicht funktioniert. Mancher wird sich aber doch fragen, was hinter der grafischen Oberflache steckt, wie z.B. ein Com- puterspiel oder ein Bildbearbeitungspaket zu einer Digitalkamera gemacht wird, welche Verfahren dabei ablaufen und welche Programmiersysteme dazu verwendet werden. An diesen Personenkreis wendet sich das vorhegende Buch. Bei der Implementierung zeitgemafier Anwendungen nimmt die Programmierung der Computergrafik und Bildverarbeitung einen wesenthchen Teil ein. In den letzten Jahren sind diese beide Bereiche immer starker zusammengewachsen. Dieser Entwicklung versucht das vorhegende Buch gerecht zu werden. Der erste Teil des Buches ist der Computergrafik gewidmet. Es werden die wichtig- sten Verfahren und Vorgehensweisen erlautert und an Hand von Programmausschnitten dargestellt. Als grafisches System wurde OpenGL verwendet, da es alle Bereiche abdeckt, sich als weltweiter Standard etabliert hat, plattformunabhangig und kostenlos ist, und mit modernen Grafikkarten bestens zusammenarbeitet. Der zweite Teil befasst sich mit digitaler Bildverarbeitung, die mit ihren Verfahren die Grundlage fiir praktische Anwendungen von bildauswertenden und bildgenerierenden Systemen in vielen Bereichen bildet. Der Bildverarbeitungsteil ist als Zusammenfassung von zwei Biichern entstanden, die von einem der beiden Autoren vorlagen. Zunachst war geplant, diese Zusammenfassung ausschliefilich iiber das Internet und auf CD-ROM anzu- bieten. Die permanente Nachfrage liefi es aber doch sinnvoll erscheinen, sie in dieses Buch zu integrieren. Das Buch wendet sich also an Interessenten, die sich in dieses Gebiet einarbeiten und praktische Erfahrungen sammeln mochten. Deshalb wurde, soweit moglich, auf die Darstel- lung der oft komplizierten mathematischen Hintergriinde verzichtet und haufig eine eher pragmatische Vorgehensweise gewahlt. Zur Vertiefung wird das Buch durch ein Internetan- gebot erganzt. Hier findet der Leser Ubungsaufgaben, vertiefende Kapitel und interaktive Kurse, wie sie auch an Hochschulen angeboten werden. Aufierdem wird der Internetauftritt fiir Korrekturen und die Versionsverwaltung verwendet. Alfred Nischwitz, Peter Haberacker, 3. Juni 2004 Vorwort zur 2. Auflage Aller guten Dinge sind Drei. In diesem Sinne freuen wir uns, dass wir als dritten Co- Autor fiir die Weiterentwicklung dieses Buchs unseren Kollegen Prof. Dr. Max Fischer ge- winnen konnten. Damit wurde der Tatsache Rechnung getragen, dass die sehr dynamischen und immer enger zusammenwachsenden Gebiete der Computergrafik und Bildverarbeitung eines weiteren Autors bedurften, um adaquat abgedeckt zu werden. Inhaltlich wurde der Charakter der 1. Auflage beibehalten. An einer Reihe von Stellen wurden jedoch Erganzungen und Aktualisierungen vorgenommen. So ist im Kapitel 2 ein neuer Abschnitt liber „ Bildverarbeitung auf programmierbarer Grafikhardware" hinzuge- kommen, im Kapitel 20 wurde der neuerdings haufig verwendete „Canny-Kantendetektor" eingefiigt, und im Kapitel 34 wurde eine Anwendung des „Run-Lengtli-Coding" im Umfeld der Objektverfolgung in Echtzeitsystemen erganzt. Die Literaturhinweise wurden aktuali- siert und durch neue Zitate erweitert. Weiterhin konnten zahlreiche Fehler aus der 1. Auflage korrigiert werden. Dafiir sei den kritischen Lesern ganz herzlich gedankt, die sich die Miihe gemacht haben, uns zu schreiben. Ganz besonders mochten wir uns an dieser Stelle bei Fr. Dipl.-Math. Beate Mielke bedanken, die alleine fiir ca. | aller Fehlermeldungen zustandig war. Alfred Nischwitz, Max Fischer, Peter Haberacker, 22. Juh 2006 Inhaltsverzeichnis Einleitung 1 Zusammenhang Computergrafik - Bildverarbeitung 6 2.1 Bildverarbeitung auf programmierbarer Grafikhardware 7 2.2 Simulation von kameragesteuerten Geraten 10 2.3 Bilddatencodierung 14 2.4 Bildbasiertes Rendering 19 Computergrafik 25 Interaktive 3D-Computergrafik 27 3.1 Harte Echtzeit 28 3.2 Weiche Echtzeit 31 Anwendungen interaktiver 3D-Computergrafik 32 4.1 Ausbildungs-Simulation 32 4.2 Entwicklungs-Simulation 34 4.3 Unterhaltung 36 4.4 Teleprasenz 36 4.5 Daten-Visualisierung 37 4.6 Augmented Reality 38 4.7 Dateniibertragung 39 Einfiihrung in die 3D-Computergrafik mit OpenGL 41 5.1 OpenGL Kurzbeschreibung 43 5.2 Die OpenGL Rendering Pipeline 45 5.2.1 Display Listen 46 5.2.2 Vertex-Operationen 46 5.2.3 Pixel-Operationen 46 5.2.4 Textur-Speicher 47 5.2.5 Rasterisierung 47 5.2.6 Pragment-Operationen 47 viii INHALTSVERZEICHNIS 5.2.7 Bildspeicher 48 5.3 Die OpenGL Kommando Syntax 48 5.4 Erganzende Literaturhinweise 49 6 Geometrische Grundobjekte 51 6.1 3D-Modellierungsmethoden 51 6.1.1 Planare Polygene 51 6.1.2 Gekriimmte Polygene 52 6.1.3 Volumendarstellung 53 6.1.4 Konstruktive Korpergeometrie 54 6.2 Geometrische Grundobjekte in OpenGL 54 6.2.1 Vertex-Definition in OpenGL 56 6.2.2 Grafik-Primitive in OpenGL 57 6.2.3 Programmierbeispiele 59 6.3 Tipps zur Verwendung der Grafik-Primitive 74 6.3.1 Rendering-Geschwindigkeit 74 6.3.2 Vertex Arrays 75 6.3.3 Konsistente Polygon-Orientierung 76 6.3.4 Koordinaten-Berechnungen offline 76 6.3.5 Oberfiachen-Tessellierung 77 6.3.6 Liicken 77 6.3.7 Hinweise zum glBegin/glEnd-Paradigma 78 6.4 Modellierung komplexer 3D-Szenarien 79 7 Koordinatensysteme und Transformationen 80 7.1 Definition des Koordinatensystems 80 7.2 Transformationen im Uberblick 81 7.3 Mathematische Grundlagen 83 7.3.1 Homogene Koordinaten 83 7.3.2 Transformations-Matrizen 84 7.4 Modell-Transformationen 86 7.4.1 Translation 86 7.4.2 Rotation 87 7.4.3 Skalierung 89 7.4.4 Reihenfolge der Transformationen 91 7.5 Augenpunkt-Transformationen 93 7.6 Projektions-Transformationen 94 7.6.1 Orthografische Projektion (Parallel-Projektion) 94 7.6.2 Perspektivische Projektion 95 7.6.3 Normierung 100 7.7 Viewport-Transformation 101 7.8 Matrizen-Stapel 103 INHALTSVERZEICHNIS ix 8 Verdeckung 108 8.1 Der z-BuflFer Algorithmus 109 8.2 Die Implementierung des z-Buffer Algorithmus 112 8.3 Einsatzmoglichkeiten des z-Buffer Algorithmus 113 8.3.1 Entfernen aller Vorderteile 114 8.3.2 Hohenkarten generieren 114 8.3.3 Volumenmessung 116 8.3.4 Oberflachenmessung 117 8.3.5 Entfernungsmessung 118 9 Farbe, Transparenz und Farbmischung 119 9.1 Das Farbmodell in OpenGL 119 9.2 Modelle der Farbdarstellung 122 9.2.1 Der RGBA-Modus 122 9.2.2 Der Farb-Index-Modus 122 9.2.3 Wahl zwischen RGBA- und Farb-Index-Modus 123 9.2.4 Farbspezifikation im RGBA-Modus 123 9.2.5 Farbspezifikation im Farb-Index-Modus 126 9.3 Transparenz und Farbmischung 127 9.3.1 Farbmischung in OpenGL 127 9.3.2 Beispiele fiir Farbmischungen 130 9.3.3 Transparente Texturen 136 9.3.4 3D-Probleme bei der Farbmischung 137 10 Anti-Aliasing 140 10.1 Aliasing-Effekte 140 10.2 GegenmaBnahmen - Anti-Ahasing 144 10.2.1 Pre-Filterungs-Methode: Flachenabtastung 144 10.2.2 Post-Filterungs-Methoden 146 11 Nebel und atmospharische Effekte 151 11.1 Anwendungen 151 11.2 Nebel in OpenGL 153 12 Beleuchtung und Schattierung 159 12.1 Beleuchtungsmodelle 160 12.1.1 Physikahsche Optik und Naherungen der Computergrafik 160 12.1.2 Lokale und globale Beleuchtungsmodelle 169 12.1.3 Das Standard-Beleuchtungsmodell in OpenGL 171 12.2 Schattierungsverfahren 191 12.2.1 Flat-Shading 192 12.2.2 Smooth-/Gouraud-Shading 193 12.2.3 Phong-Shading 199 X INHALTSVERZEICHNIS 12.3 Programmierbare Shader 200 12.3.1 Shading Programmiersprachen 202 12.3.2 Realisierung eines Phong-Shaders in Cg 204 13 Texturen 215 13.1 Foto-Texturen (Image Texturing) 217 13.1.1 Spezifikation der Textur 219 13.1.2 Textur-Filter 228 13.1.3 Gaufi-Pyramiden-Texturen (MipMaps) 231 13.1.4 Textur-Fortsetzungsmodus (Texture Wraps) 236 13.1.5 Mischung von Textur- und Beleuchtungsfarbe (Texture Environment) 239 13.1.6 Zuordnung von Texturkoordinaten 242 13.1.7 Einschalten des Texture Mappings 253 13.1.8 Textur-Objekte 254 13.2 Mehrfach-Texturierung (Multitexturing) 256 13.3 Projektive Texturen (Projective Texture) 260 13.4 Umgebungs-Texturen (Environment Maps) 262 13.4.1 Spharische Texturierung (Sphere Mapping) 263 13.4.2 Kubische Texturierung (Cube Mapping) 266 13.5 Rehef-Texturierung (Bump Mapping) 270 13.6 Schatten-Texturierung (Shadow Mapping) 277 14 Animationen 279 14.1 Animation und Double Buffering 279 14.2 Animationstechniken 283 14.2.1 Bewegung eines starren Objektes - Pfadanimation 284 14.2.2 Bewegung von Gelenken eines Objektes - Artikulation 286 14.2.3 Verformung von Oberflachen - Morphing 288 14.2.4 Bewegung von Objektgruppen: Schwarme und Partikelsysteme 290 15 Beschleunigungsverfahren 293 15.1 Szenen Graphen 296 15.2 Cull Algorithmen 299 15.2.1 Viewing Frustum Culling 301 15.2.2 Occlusion Culling 303 15.2.3 Backface Culling 307 15.2.4 Portal Culling 308 15.2.5 Detail Culling 309 15.3 Level Of Detail (LOD) 310 15.3.1 Switch LOD 312 15.3.2 Fade LOD 313 15.3.3 MorphLOD 314

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.