|
||||||
|
FB3 |
||||||
| AG BKB > Thomas Röfer > Kognitive Robotik II > Übungszettel > | ||||||
1. Übungszettel: Bildverarbeitung |
||||||
Ausgabe: 18. April 2001 1. Farbräume (25%)Teilaufgabe 1. Erläutert die drei Farbräume YUV, RGB und HSI. Wie rechnet man Farben von YUV nach RGB und RGB nach HSI um? Teilaufgabe 2. Überlegt euch, wie man die Umrechnung von YUV nach HSI effizient gestalten kann. 2. Segmentierung (25%)Vorbereitung. Es gibt zwei Wege, um an die für diese Aufgabe benötigten Bilder zu kommen. Zum einen könnt ihr die im Projektraum installierte WebCam nutzen, die ihre Bilder regelmäßig im Internet ablegt. Hierzu eignet sich die Datei WebGrabber.java als Basisklasse, WebExample.java ist eine Beispielimplementierung. Zum anderen könnt ihr eine eigene WebCam nutzen (falls ihr eine besitzt), um über das Java Media Framework 2.1.1 (das ihr vorher installieren müsst) Bilder aufzunehmen. Hierfür eignet sich die Datei CameraGrabber.java (mit Grabber.java als Hilfsklasse) als Basisklasse, CameraExample.java ist eine Beispielimplementierung. Diese Dateien findet ihr alle in dem Archiv, das auf der Web-Seite bereitgestellt wird. Teilaufgabe 1. Erstellt ein Programm, das über die RGB-Farben aller Pixel der aufgenommenen Bilder mittelt. Konvertiert diesen Mittelwert in den HSI-Raum und lasst ihn euch ausgeben. Testet nun euer Programm mit den bereitgestellten farbigen Blättern. Achtet darauf, dass die Kamera nur die Farbtafel aufnimmt und keinen Hintergrund. Welche Werte erhaltet ihr? Teilaufgabe 2. Erweitert euer Programm so, dass komplette Bilder in den HSI-Raum transformiert werden. Wählt einige der Farbtafeln aus und nutzt die zuvor ermittelten Werte, um die Bilder nach diesen Farben zu segmentieren, d.h. ersetzt alle Pixel, die zu einer Farbklasse gehören, durch eine besonders markante Farbe, alle Pixel, die zu keiner der gesuchten Klassen gehören, sollen durch Schwarz ersetzt werden. Verwendet für die Segmentierung Toleranzbereiche um die in Teilaufgabe 1 ermittelten Werte, es bietet sich sogar an, für die Helligkeit I und die Sättigung S nur eine sehr tolerante Mindestgrenze vorzugeben und für die Farbe H eine obere und untere Schranke zu verwenden. 3. Flächenerkennung (25%)Erweitert euer Programm so, dass es zusammenhängende Bereiche gleicher Farben erkennt. Dazu macht ihr erst einmal eine Kopie des segmentierten Bildes. Dieses wird dann Pixel für Pixel durchlaufen. Bei jedem Pixel, das nicht schwarz ist, soll ein Füllalgorithmus gestartet werden, der Breite und Höhe des zusammenhängenden Bereichs ermittelt, zu dem das gefundene Pixel gehört. Während des Füllens sollen alle Pixel dieses Bereichs schwarz eingefärbt werden, damit sie nur einmal durchlaufen werden. Am Ende jedes Füllvorgangs soll im original-segmentierten Bild die Mitte der gerade ermittelten Fläche eingezeichnet werden, falls die Fläche eine von euch festzulegende Mindestgröße hat. Wurde die Kopie einmal komplett durchlaufen, sollte sie schwarz sein und alle Flächen wurden erkannt und im Original markiert. 4. Positionsbestimmung (25%)Beschreibt, wie man das oben entwickelte Verfahren einsetzen
kann, um wie in der Small-Size-League die Positionen der Roboter
auf dem Spielfeld zu bestimmen. Welche Daten braucht man dazu?
Wie nutzt man die Farbflächen? Stellt Formeln auf, um aus x-
und y-Koordinaten, wie sie in Aufgabe 3 ermittelt werden,
die metrische Position eines Roboters in x, y und
Rotation zu bestimmen. |
||||||
| Autor: Dr. Thomas Röfer |
||||||
| Kognitive Robotik II |
|
|||||