Dobble Spiel gegen den Computer: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 34: | Zeile 34: | ||
[[Datei:Ausgangslage.PNG|500px|thumb|left|Ausgangslage]] | [[Datei:Ausgangslage.PNG|500px|thumb|left|Ausgangslage]] | ||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | <br /> | ||
<br /> | <br /> | ||
Zeile 62: | Zeile 74: | ||
[[Datei:schlüssel in karte.jpg|300px|thumb|left|Extrahierte Dobble-Karte]] | [[Datei:schlüssel in karte.jpg|300px|thumb|left|Extrahierte Dobble-Karte]] | ||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | <br /> | ||
<br /> | <br /> | ||
Zeile 92: | Zeile 116: | ||
[[Datei:schlüssel bearbeitet.jpg|300px|thumb|center|Extrahiertes Objekt nach Bearbeitung]] | [[Datei:schlüssel bearbeitet.jpg|300px|thumb|center|Extrahiertes Objekt nach Bearbeitung]] | ||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | <br /> | ||
<br /> | <br /> | ||
Zeile 123: | Zeile 159: | ||
<br /> | <br /> | ||
<br /> | <br /> | ||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
<br /> | |||
* Abspeichern der Parameter für jedes Objekt in einer Liste | * Abspeichern der Parameter für jedes Objekt in einer Liste | ||
Version vom 19. Juni 2016, 21:38 Uhr
Projektteam: Benedikt Steinmeier Stefan Vogel
Betreuer: Prof. Schneider
Einleitung
Dieser Artikel wurde im Rahmen der Lehrveranstaltung Digitale Signal- und Bildverarbeitung verfasst und dokumentiert die Ergebnisse des Projektes "Dobble Spiel gegen den Computer". Die allgemeinen Ziele der Projekte können im Wiki-Artikel DSB SoSe2016 eingesehen werden.
Aufgabenstellung
Die Aufgabenstellung dieses semesterbegleitenden Projekts bestand daraus, mit Hilfe der Matlab Image Processing Toolbox einen Algorithmus zu entwickeln, der das Gleiche Objekt auf zwei verschiedenen Dobble-Karten findet, anzeigt und markiert.
Durchführung
Vorbereitung
Zu Beginn des Projekts wurden alle Dobble-Karten unter zur Hilfenahme des HSHL Buchscanners der Bibliothek abfotografiert und anschließend vereinzelt.
Insgesamt standen 12 Dobble-Karten mit insgesamt 29 verschiedenen Objekten zur Verfügung.
Objekterkennung und Segmentierung der Objekte auf den Dobble-Karten
Merkmalsextraktion
Die Merkmalsextraktion der Objekte auf den Dobble-Karten glieder sich in folgende Schritte auf:
- Umwandeln des Farbbildes in ein Graubild mittels der Funktion "rgb2gray"
- Gaus-Filtern des Graubildes mittels der Funktion "imgaussfilt"
- Umwandeln des Graubildes in ein Binäbild mittels der Funktion "im2bw"
- Ermitteln der Grenzen der zwei runden Dobble-Karten mittels der Funktion "bwboundaries"
- Bestimmen der Maxima und Minima in X- und Y-Richtung der jeweiligen gefundenen Dobble-Karten
- Abspeichern der Dobble-Karten in entsprechenden neuen temporären Bildern
- Schwarzfärben des Hintergrundes des temporären Bilders mit der jeweiligen Dobble-Karte im Zentrum
- Bestimmen aller Objekte, die sich innheralb von anderen Objekten befinden, in den temporären Bildern mittels der Funktion "bwboundaries"
- Bestimmen der Maxima und Minima in X- und Y-Richtung der gefundenen Objekte
- Extrahieren der Objekte aus der Dobble-Karte
- Füllen von Löchern innerhalb des Objektes
- Entfernen von Regionen, die den Rand schneiden
- Ermitteln der Mediane des Grün-, Blau- und Rotanteils aller übrig gebliebenen Pixel
- Berechenen der Kreisförmigkeit des Objektes
- Abspeichern der Parameter für jedes Objekt in einer Liste
Klassifikation der Objekte
Testumgebung: SameObjectSearchEngine.m
Um das Programm, zum Auffinden derselben Objekte des Dobble-Spiels, zu testen wurde eine Testumgebung in Form einer Matlab GUI erstellt und programmiert.
Nach Betätigung des „NEW CARDS“ – Taster werden zwei zufällig ausgewählte Dobble-Karten, um einen zufälligen Winkel gedreht und anschließend auf einer zufälligen Position auf einem schwarzen Bild positioniert.
Das neu erzeugte Bild wird anschließend an die Funktion „find_same_objects.m“ übergeben, um dieselben Objekte auf den beiden Dobble Karten zu finden. Die Funktion gibt den Name der beiden gleichen Objekte, sowie die deren X und Y Position zurück an die Testumgebung.
Die Testumgebung gibt anschließend den Namen bei der Textbox „result“ aus und markiert die gefunden Objekte mit einem roten Kreis (siehe Abbildung oben).
Dokumentation
/
Fazit und Ausblick
Der nächste Schritt wäre die Umsetzung und Erprobung mit Hilfe eines physikalischen Aufbaues mit einer Kamera und z.B. eines Raspberry PI, die das Dobble-Spiel in Realtime verarbeitet und das Ergebnis auf einem Monitor ausgibt.
Die Realtime Erprobung konnte im Rahmen dieses Semesters leider noch nicht durchgeführt werden.
Literatur
/
→ zurück zum Hauptartikel: DSB SoSe2016