Übung: Computergrafik 1

Ähnliche Dokumente
Elementare Bildverarbeitungsoperationen

B3. Bilderkennung mit Java

Computergraphik 1 2. Teil: Bildverarbeitung. Fouriertransformation Ende FFT, Bildrestauration mit PSF Transformation, Interpolation

Computergrafik und Bildverarbeitung. Prof. Dr. André Hinkenjann

Computergrafik 2: Fourier-Transformation

Modul Digitale Bildverarbeitung SS16 Bestandteile der Lehrveranstaltung und Prüfung: Vorlesungen Übungsserien Praktika (ImageJ) bis Mai 2016 Projekt

Grundlagen der Computer-Tomographie

INTELLIGENTE DATENANALYSE IN MATLAB

FILTER UND FALTUNGEN

Morphologische Bildverarbeitung II

Nichtmonotone Grauwertabbildung

Morphologie auf Binärbildern

Systemtheorie abbildender Systeme

Digitale Bildverarbeitung (DBV)

Debayeringverfahren. 19. Mai Thomas Noack, Nikolai Kosjar. SE Computational Photography - Debayeringverfahren

Grundlagen von Rasterdaten

Kapitel 9. Kombination von Vektor- und Rasterdaten. Rasterdaten. 3. Transformationen des Formats. 4. Kombinierte Auswertungen

Grundlagen: Bildbearbeitung / Objekterkennung. Julia Peterwitz zum Seminar: Videobasierte Erkennung und Analyse menschlicher Aktionen

Digitale Bildverarbeitung Einheit 8 Lineare Filterung

Versuch 3: Anwendungen der schnellen Fourier-Transformation (FFT)

Digitale Bildverarbeitung

Bildverarbeitung Herbstsemester Fourier-Transformation

Numerisches Programmieren, Übungen

Beate Meffert, Olaf Hochmuth: Werkzeuge der Signalverarbeitung, Pearson 2004

Hauptseminar Autofokus

Motivation. Diskretisierung. Überblick. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Diskretisierung und Quantisierung

Kurzeinführungin Blender & Gimp

Dynamische Geometrie

Computergraphik 1 2. Teil: Bildverarbeitung

Regionen in Binärbildern

Bildbearbeitungstechniken Lehrerinformation

Grundlagen der digitalen Bildverarbeitung / Fortsetzung

Übung 6: Fast Fourier Transformation

Filterung von Bildern (2D-Filter)

Zusammenfassung Digitale Bildverarbeitung By Fabian Flohrmann

Praktikum-Meßtechnik Verfasser: Dr. H. Bergelt

Technische Universität

Industrielle Bildverarbeitung

Digitale Bildverarbeitung (DBV)

Morphologische Operationen (12 Punkte)

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

Computergrafik 2: Organisatorisches

Morphologische Bildoperationen

Praktikum 1. Bildverarbeitungs - Software ImageJ LUT Manipulationen Bild - Quantisierung

(Fast) Fourier Transformation und ihre Anwendungen

R.Wagner, Mathematik in der Astronomie

Bildrekonstruktion & Multiresolution

The GIMP First Aid. Oberfläche.

Computergrafik 2: Klassifikation

Lösung zur Klausur zu Krypographie Sommersemester 2005

Faltung, Korrelation, Filtern

Algorithmen und Datenstrukturen

Segmentierung von Faserstrukturen in tomographischen Aufnahmen. Workshop Analyse der Mikrostruktur von Faserverbundwerkstoffen in Volumenbildern

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Binärbildverarbeitung

Fouriertransformation

Algorithmen II Vorlesung am

Bilder und Fotos bearbeiten mit Paint Shop Pro 8

Triangulierung von einfachen Polygonen

Programmierpraktikum WS 16/17

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Geometrische Algorithmen

Erinnerung. Arbeitsschritte der Computergraphik. Modellierung. Animation. Rendering. Ausgabemedium. Generierung

Hauptdiplomklausur Informatik August 2006: Multimedia Technology

WS 2010/ Januar Mathematisches Institut der Universität München Prof. Dr. Rudolf Fritsch

Digitale Signalbearbeitung und statistische Datenanalyse

Bildkompression InTh, 2005, JPEG, Hak, Rur, 1

b.) Geschwindigkeit eines Beobachters am Äquator: Etwa Kilometer pro Stunde.

Kapitel 7. Bildverarbeitung im Frequenzraum

Übung: Abhängigkeiten

Übungen für packedia pro und AutoCAD / Bricscad:

Tag der Mathematik 2016

Verzerrungsfreies System

Umkreis eines Dreiecks

Multimediatechnik / Video

Grundlagen der Bildbearbeitung

DER LOGARITHMISCHE KREISRECHENSCHIEBER KL-1

Kapitel 2.1: Die stochastische Sicht auf Signale Georg Dorffner 67

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Name und des Einsenders

Inhalt. Bildaufnahme / Digitale Bilder. Kameras CCD Sensoren Auge Sampling / Aliasing Quantisierung

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

Datenstrukturen & Algorithmen

Aufgaben zu Kapitel 5

Computergraphik I. Scan Conversion: Lines & Co. Einordnung in die Pipeline. G. Zachmann Clausthal University, Germany zach@tu-clausthal.

Ratsgymnasium Bielefeld Schuljahr 2005/2006. Besondere Lernleistung im Fach Informatik. Thema: Verfahren zur Erkennung präsentierter Objekte

Bildbearbeitung mit Gimp

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Projektdokumentation

Technik der Fourier-Transformation

mentor Lernhilfe: Mathematik 7. Klasse Baumann

Bilder Schärfen und Rauschen entfernen

Blick durch ein Glas. 1. Fotografieren Sie das Glas.

Bildverarbeitung Herbstsemester. Binärbildanalyse

Medientechnik. Übung 4 Java Bildbearbeitung - Teil 1

FARB- UND TONWERTKORREKTUR 1 6

Einführung Aufgabe 1 - Bildverarbeitung. Anton Augsburg 2011

2. Digitale Codierung und Übertragung

Transkript:

Prof. Dr. Andreas Butz Prof. Dr. Ing. Axel Hoppe Dipl.-Medieninf. Dominikus Baur Dipl.-Medieninf. Sebastian Boring Übung: Computergrafik 1 Filtern im Frequenzraum Segmentierung

Organisatorisches Klausuranmeldung Bitte meldet euch bis 23.07.2009 in Uniworx zur Klausur an! Kommendes Übungsblatt (Klausurvorbereitung) möglicherweise schon früher (weiterhin keine Abgabe) Übung Computergrafik 1 SoSe 2009 2

Übungsblatt 8 Übung Computergrafik 1 SoSe 2009 3

Übungsblatt 8 Konvolutionsfilter: Kernel ist quadratisch Kann global definiert werden -> Übergabe an Superklasse: Übung Computergrafik 1 SoSe 2009 4

Übungsblatt 8 Konvolutionsfilter: Divisor ist die Summe der Elemente des Kernels Der Divisor kann 0 sein, z.b.: kernel = {0, -1, 0, -1, 4, -1, 0, -1, 0}; divisor = -1-1+4-1-1 = 0; Ist dies der Fall, wird der Divisor auf 1 gesetzt. Wandert ein Teil des Kernels außerhalb des Bildes, so werden nur die Elemente berücksichtigt, die innerhalb des Kernels sind, z.b.: kernel = {0, -1, 0, -1, 4, -1, 0, -1, 0}; Hervorgehobene Elemente sind innerhalb des Bildes divisor = -1-1+4 = 2; Wichtig: Liegen Farbwerte außerhalb des Spektrums (bei RGB kleiner 0 oder > 255), so müssen diese abgeschnitten werden: Übung Computergrafik 1 SoSe 2009 5

Übungsblatt 8 Morphologische Filter: Dilatation: Finde das Maximum jedes Farbanteils innerhalb des Strukturelements und setze diese Werte auf das Ankerpixel. Erosion: Finde das Minimum jedes Farbanteils innerhalb des Strukturelements und setze diese Werte auf das Ankerpixel. Quadratischer und kreisförmiger Kernel: Übung Computergrafik 1 SoSe 2009 6

Übungsblatt 8 Hough-Transformation: Größe des Hough-Raums: Höhe: Anzahl der Schritte pro Grad mal 180 Breite: Diagonale des Bildes (gemessen vom Mittelpunkt können Linien eine maximale Entfernung Hälfte der Diagonale haben - wir lassen aber negative Entfernungen zu, da nur 180 Grad beim Winkel betrachtet werden). Berechnung pro Pixel: Übung Computergrafik 1 SoSe 2009 7

Übungsblatt 8 Hough-Transformation: Zunächst: Finden des Maximums im Hough-Raum Finden der Linien: Gehe über den gesamten Hough-Raum Sobald ein Punkt über 50 % des Maximums liegt, muss noch im Umkreis nach einem eventuell höheren Wert gesucht werden Sobald das korrekte lokale Maximum gefunden wurde, kann die Linie bestimmt und gezeichnet werden. Diese Schritte werden dann je nach Anzahl der Linien wiederholt Zeichnen der Linien: Gegeben ist bereits der Winkel und der Abstand Idee: Verschiebe das Koordinatensystem auf den Bildmittelpunkt Drehe es nun um den Winkel der Linie und verschiebe es dann um den Abstand (lokale x-achse) Zeichne die Linie nun entlang der y-achse Übung Computergrafik 1 SoSe 2009 8

Übungsblatt 8 Hough-Transformation: Linien sind höchstens so lang wie die Diagonale (hier houghwidth bzw. halfhoughwidth für jeweils die Hälfte der Diagonale) Übung Computergrafik 1 SoSe 2009 9

Filtern im Frequenzraum Übung Computergrafik 1 SoSe 2009 10

Filtern im Frequenzraum Beim letzten Mal: Konvertierung eines Bilds in den Frequenzraum per FFT Dadurch lassen sich bestimmte Filteroperationen (Hoch-, Tief-, Bandpass) deutlich effizienter durchführen Anwendung der Filter im Frequenzraum kann deutlich anschaulicher sein (Vergleiche Tiefpassfilter vs. Anwendung des entsprechenden Konvolutionskernels) Generell können Konvolutionsfilter sowohl im Orts- als auch Frequenzraum durchgeführt werden Übung Computergrafik 1 SoSe 2009 11

Filtern im Frequenzraum Filtern wird durch Pixel Multiplikation des Spektrums mit einer Filter Transfer Function realisiert: F(u,v) ist das Bild im Frequenzraum, H(u,v) ist die Fouriertransformation des Original-Kernels Achtung: Manipulation der Phase kann Bildinformationen zerstören! Deswegen sind die meisten Filter sog. zero-phase-shift filter, d.h. sie verändern nur Amplitude, nicht Phase (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 12

Filtern im Frequenzraum Zur Konversion zwischen Orts- und Frequenzraum können Fouriertransformation und inverse FT genutzt werden Das Konvolutionstheorem sagt folgendes aus: Dabei steht die linke Seite für die Konvolution im Ortsraum (f Bild, h Kernel) und die rechte für die gleiche Konvolution im Frequenzraum (F Bild, H Kernel) Übergang von links nach rechts per FT bzw. Inverser FT Wichtig: Beide Konvolutionsanwendungen sind äquivalent! (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 13

Filtern im Frequenzraum Generelles Vorgehen: Konversion des Bilds in den Frequenzraum per FT (f => F) Konversion des Konvolutionskernels in den Frequenzraum per FT (h => H) Multiplikation von F mit H (F * H) Umwandlung des Bilds in den Ortsraum per inverser FT (F => f ) (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 14

Filtern im Frequenzraum Performancevergleich: Konvolution im Ortsraum: O (N^4) Konvolution im Frequenzraum: f => F: O(N^2 * log(n)) (FFT) h => H: O(N^2 * log(n)) (FFT) F * H: O(N^2) F => f : O(N^2 * log(n)) (Inverse FFT) Filtern im Frequenzraum lohnt sich: falls mehrere Filter nacheinander angewendet werden (Konversion und Rückkonversion muss nur einmal durchgeführt werden) falls N sehr groß ist (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 15

Filtern im Frequenzraum Beispielfilter: Tiefpassfilter (Weichzeichner): Im Ortsraum hatten wir diesen Konvolutionskernel: Im Frequenzraum müssen wir nur alle Frequenzbereiche, die einen bestimmten Abstand vom Zentrum des Spektrums haben abschneiden: 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 16

Filtern im Frequenzraum Beispielfilter: Tiefpassfilter (Weichzeichner) (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 17

Filtern im Frequenzraum Beispielfilter: Tiefpassfilter (Weichzeichner) Problem: Artefakte! (ringing) (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 18

Filtern im Frequenzraum Grund für die Artefakte: Das perfekte Abschneiden im Frequenzraum ist äquivalent zu dem untenstehenden Konvolutionskernel Dessen negative Anteile erzeugen an Kanten im Bild Verzerrungen (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 19

Filtern im Frequenzraum Lösung: Butterworth-Filter (weiche Übergänge im Frequenz- und Ortsraum) (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 20

Segmentierung Übung Computergrafik 1 SoSe 2009 21

Segmentierung (Quelle: http://www.flickr.com/photos/tauntingpanda/14782257/) Übung Computergrafik 1 SoSe 2009 22

Segmentierung Segmentierung zerlegt Pixelmengen in Bedeutungsträger, d.h. Umwandlung in binäres Bild (Vordergrund: 1, Hintergrund: 0) Bindeglied zwischen low-level (Pixel) und high-level (Objekte) Operationen Methoden lassen sich grob in zwei Kategorien unterteilen: Non-contextual: Ausnutzung von globalen Eigenschaften (z.b. Grauwert) Contextual: Ausnutzung der Beziehungen zwischen Pixeln (Meist) Einfach für Menschen, schwierig für Maschinen Aktives Forschungsgebiet (Bilderkennung, OCR) (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 23

Thresholding Sehr einfache Segmentierungstechnik: Thresholding (Schwellenwertbildung) Basierend auf dem Grauwert eines Pixels wird er in Vordergrund oder Hintergrund eingeteilt Dabei kann entweder oberhalb eines bestimmten Grauwerts abgeschnitten oder ein bestimmtes Band benutzt werden Übung Computergrafik 1 SoSe 2009 24

Thresholding Funktioniert recht gut bei simplen Bildern wie Texten. Aber: Nachbarschaft eines Pixels wird nicht beachtet Funktioniert nicht wenn Vordergrundobjekte unterschiedliche Helligkeiten haben Threshold muss richtig gewählt werden: Übung Computergrafik 1 SoSe 2009 25

Thresholding Übung Computergrafik 1 SoSe 2009 26

Thresholding Um den richtigen Threshold zu finden kann man den Benutzer diesen interaktiv auswählen lassen (z.b. in Photoshop, Gimp) Übung Computergrafik 1 SoSe 2009 27

Thresholding Alternative: Analyse des Bildhistogramms Haben zwei Objekte klar unterscheidbare Grauwerte (= Helligkeit) enthält das zugehörige Histogramm Minima Diese Minima können als Thresholds genutzt werden (Quellen: Tönnies - Grundlagen der Bildverarbeitung, http://www.flickr.com/photos/visbeek/3163916678/) Übung Computergrafik 1 SoSe 2009 28

Segmentierung Verfahren, die ebenfalls den Kontext in Betracht ziehen, können bessere Ergebnisse erzielen. Zusätzlich lässt sich damit der Vordergrundbereich in verschiedene, getrennte Objekte mit eigenen Labels aufteilen Um solche Labels für Objekte speichern zu können reicht ein binäres Bild nicht mehr Möglichkeiten sind Graustufenbilder (eine Graustufe pro Objekt) oder zusätzliche Datenstrukturen (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 29

Nachbarschaft Wichtig bei kontextuellen Verfahren: Die Nachbarschaft eines Pixels Verbreitete Nachbarschaftsmaße: 4er und 8er Nachbarschaft (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 30

Nachbarschaft Je nach verwendetem Nachbarschaftsmaß ergeben sich unterschiedliche Aufteilungen: Übung Computergrafik 1 SoSe 2009 31

Grassfire Ein einfacher Algorithmus zur Aufteilung eines Binärbilds in Objekte ist Grassfire: Scannt Bild zeilenweise Beim Auffinden eines Nicht-Hintergrundpixels wird die rekursive Labeling Funktion aufgerufen. Labeling Startet Buschfeuer : Startpixel wird verbrannt (d.h. auf Hintergrund gesetzt) 4- oder 8-Nachbarn werden besucht Ist einer der Nachbarn im Vordergrund wird rekursiv weiter gezündelt. Am Ende wird die Labelnummer erhöht und der Scan-Vorgang geht weiter (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 32

Grassfire Übung Computergrafik 1 SoSe 2009 33

Interaktive Segmentierung Segmentierung zerlegt Pixelmengen in Bedeutungsträger Modell: Erwartete Bedeutung => Widerspruch! Modellbasierte Segmentierung: Vorwissen wird zur Suche verwendet Modellwissen wird interaktiv vom Benutzer eingebracht Instanzen eines Objektes werden im Bild gesucht Übung Computergrafik 1 SoSe 2009 34

Region Growing Übung Computergrafik 1 SoSe 2009 35

Region Growing Übung Computergrafik 1 SoSe 2009 36

Region Growing Grassfire funktioniert nur auf Binärbildern Region Growing ist ein iterativer Flood-Fill Algorithmus mit einem (interaktiv) festgelegten Startpunkt und funktioniert auf beliebigen Bildern Voraussetzung ist eine überprüfbare Homogenitätsbedingung (z.b. Grauwert): (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 37

Region Growing Annahmen und Ziele: Homogenität innerhalb der Region ist größer als außerhalb (es gibt Kanten). Selektion eines einzelnen Gebietes. Homogenitätsverhältnisse an anderen Orten interessieren nicht. Algorithmus: Im Grunde genommen identisch zu Grassfire/Labelling 4er oder 8er Nachbarschaft möglich Wird Grauwert (μr) verwendet muss der durchschnittliche Grauwert bei jedem Pixel angepasst werden Übung Computergrafik 1 SoSe 2009 38

Region Growing Beispiel: Zwei Seeds, 8er Nachbarschaft, Grauwertdurchschnitt mit Δ = 3 0 0 5 6 7 1 1 5 8 7 0 1 6 7 7 2 0 7 6 6 0 1 5 6 5 0 0 5 6 7 1 1 5 8 7 0 1 6 7 7 2 0 7 6 6 0 1 5 6 5 0 0 5 6 7 1 1 5 8 7 0 1 6 7 7 2 0 7 6 6 0 1 5 6 5 (Quelle: Efford - Digital Image Processing in Java) Übung Computergrafik 1 SoSe 2009 39

Literatur Weiterführende Literatur: Nick Efford: Digital Image Processing - a practical introduction using Java, ISBN-13: 978-0201596236 Klaus D. Tönnies: Grundlagen der Bildverarbeitung, ISBN-13: 978-3827371553 Übung Computergrafik 1 SoSe 2009 40