Konstruktion und Programmierung eines Multitouch-Tables
Aus Winfwiki
| Name des Autors: | Benjamin Schlösser |
| Titel der Arbeit: | Konstruktion und Programmierung eines Multitouch-Tables |
| Hochschule und Studienort: | FOM Neuss |
Inhaltsverzeichnis |
1 Einleitung
Eingabegeräte spielen bei der Interaktion mit Computern eine große Rolle. Die heute am meisten verwendeten HIDs (Human Input Device) sind Maus und Tastatur. Dabei ist diese Art der Interaktion nicht sehr intuitiv. Um den Zeiger zu bewegen, ist es nötig erst die Maus zu bewegen, durch welche wiederum der Zeiger in Bewegung versetzt wird. Intuitiver ist es, mit dem Finger direkt auf dem Anzeigemedium mit Zeiger oder anderen Objekten zu interagieren.
Ich möchte in dieser Seminararbeit zeigen, dass die Konstruktion und Programmierung eines Multitouch Tables nicht nur von Firmen mit einem großen Budget realisiert werden kann. Zudem möchte ich auf die Funktionsweise der Multitouch Technologie eingehen, und deren Ursprünge aufzeigen.
2 Geschichte
Der geschichtliche Anfang der Multitouch Tables (MTT) beginnt in der zweiten Hälfte der 60er Jahre, als die ersten Touch-Interfaces entwickelt wurden. Im Jahre 1972 entstand daraus an der University of Illinois das erste berührungsempfindliche Display, welches in Verbindung mit dem PLATO IV Computer eingesetzt wurde. Die damalige Implementation konnte auf der gesamten Fläche nur zwischen 256 verschiedenen Berührungspunkten unterscheiden.
Das erste Multitouch Eingabegerät für Computer wurde 1982 von Nimish Mehta an der University of Toronto entwickelt. Die damals eingesetzte Technik ähnelt der in modernen Multitouch-Tables. Es wurde eine Kamera hinter ein weiß-milchiges Glas platziert, welches bei Berührung durch den Finger an den entsprechenden Stellen Schwarz wurde. Durch unterschiedlichen Druck auf die Glasfläche, wurde auch der daraus resultierende Schwarze Punkt größer oder kleiner. Das System ist also auch das erste druckempfindliche Multitouch Eingabegerät.
Im Jahr 1985 entwickelte Bob Boie, welcher zu diesem Zeitpunkt bei den Bell Labs angestellt war, das erste Multitouch Display. Es bestand im Grunde aus einer Anordnung von durchsichtigen, berührungsempfindlichen Sensoren, die auf einem normalen CRT Monitor angebracht waren.
Den ersten wirklichen Multitouch Table der sowohl Ausgabe- wie auch Eingabegerät ist, wurde 1991 von Pierre Wellner entwickelt. Der Aufbau erinnert stark an heutige MTTs. Er setzte einen Projektor und eine Kamera ein, das Bild wird dann per Image Processing ausgewertet und in entsprechende Reaktionen der Maus umgewandelt. Allerdings befinden sich in seinem Aufbau diese Geräte über dem Tisch. Als Oberfläche konnte jeder helle Tisch verwendet werden, auf dem der nötige Aufbau installiert werden konnte. Er zeigt in einem Video[1] nicht nur wie er einen projizierten Taschenrechner bedient, sondern auch wie er Inhalte aus einem normalen Buch durch markieren und rüber ziehen übernimmt, oder wie man durch Multitouch Gesten Grafiken erstellen kann.
In den Jahren zwischen 1991 und 2007 gab es viele neue Entwicklungen im Bereich der Touch Eingabegeräte. Einen richtigen Boom erlebten diese aber erst als Apple im Jahr 2007 das iPhone vorstellte. Damit brachte Apple eine Multitouch Oberfläche in ein Gerät, welches von einem Großteil der Bevölkerung genutzt wird. Die Steuerung der Grafischen Oberfläche mit Gesten war in diesem Bereich eine Revolution. Im gleichen Jahr stellte auch Microsoft ihren MTT vor. Der Surface genannte Tisch war nicht nur fähig zwischen einzelnen Fingern zu unterscheiden, sondern konnte auch verschieden Objekte erkennen die auf die Oberfläche gestellt wurden.
3 Verwendungszwecke
Im Gegensatz zu Multitouch Flüssigkristallbildschirm sind MTTs aufgrund ihrer größeren Bauform und Funktionsweise für kooperative Zusammenarbeit mehrere Individuen prädestiniert. Das dies nicht bei allen Anwendungsfällen funktioniert wird deutlich, wenn versucht wird mit Texten zu arbeiten, die nicht auf die eigene Person ausgerichtet sind. Denkbar wäre hier eine Lösung mit Shutterbrillen, wie diese bei 3D Displays eingesetzt werden. Diese werden heute schon Wireless synchronisiert und sind nicht schwerer als eine normale Brille. Das Bild würde abwechselnd Bild für Bild umgedreht werden, und durch die Shutterbrillen könnte jeder den Text in der richtigen Ausrichtung sehen. Bei einer ausreichend hohen Frequenz ab 240Hz, sollte dies für alle 4 Seiten des MTTs realisierbar sein.
Anwendungsgebiete gibt es in allen Bereichen, in denen keine komplexen Eingaben benötigt werden. In der Medizin kann ein MTT die Diagnose von Patienten beschleunigen[2], beim Militär dem Kommandeur bei seiner Entscheidungsfindung unterstützen. Im Schulungsbereich können komplexe Zusammenhänge aufgezeigt werden, hier ist auch eine Kombination mit Augmented Reality möglich[3]. In einigen Jahren könnten MTTs im Entertaining Bereich für Zuhause erhältlich sein. Die Brettspiel Industrie hat in den vergangen Jahren schon damit begonnen, elektronische Gimmicks in ihre Spieletitel zu integrieren. Ein MTT würde eine Reihe neuer Spiele ermöglichen. Aktuell werden die Tische aber primär für Marketingzwecke eingesetzt. Diese Zielsetzung zeigte Microsoft besonders bei der Entwicklung des Surface Table, welche auf diesen Einsatz optimiert wurde. Dies wird besonders ersichtlich durch seine Fähigkeit Objekte zu erkennen. So können Kunden ein Produkt nehmen, und es auf den Tisch legen, um weitere Informationen zu erhalten. Einer der ersten Partner von Microsoft, welcher diese Funktion nutzt ist T-Mobile USA[4]. Kunden können dort Handys auf dem Tisch platzieren um Informationen über Preis und Funktionsumfang zu erhalten. Darüber hinaus ist es möglich mehrere Handys zu vergleichen, wenn diese näher aneinander gelegt werden. Im Rio Hotel in Las Vegas gibt es in der iBar statt normalen Tischen nur noch Microsofts Surfaces[5]. Das Hauptaugenmerk liegt hier auf der Bestellung von Getränken, das Spielen von Minigames, und dem Flirten mit Gästen an anderen Tischen. Diese neue Technologie wird hierbei als ein Event eingesetzt, und soll dem Gast etwas Neues und bisher noch nicht gesehenes bieten.
Auch bei der Entwicklung von Software rückt der MT (Multitouch) Aspekt immer weiter in den Vordergrund. Der freie Opensource Browser Firefox von Mozilla ist seit Version 3.5 MT fähig[6]. Adobes Experience Design Team, welches für das Unternehmen zukünftige Trends erkennt, und dementsprechend Technologien entwickelt, arbeitet ebenfalls an einer MT Integration in ihre Produkte[7]. Mit Ruse arbeitet Ubisoft am ersten Echtzeit-Strategie Spiel, welches über Gesten steuerbar sein wird[8]. Im Trailer[9] wird gezeigt, wie 2 sich an einem MTT gegenüber sitzende Personen gegeneinander spielen.
4 Funktionsweise
4.1 Totalreflexion
Den Effekt der Totalreflexion lässt sich an optisch transparenten Materialien mit unterschiedlichen Brechungsindex beobachten. Beim Übergang von einem optisch dichteren in ein optisch dünneres Medium wird der Lichtstrahl in einen reflektierten und in einen durchgehenden Anteil aufgespalten. Der Anteil des reflektierten Lichts steigt mit der Größe des Einfallswinkel, bis die Totalreflexion erreicht ist. In diesem Bereich wirkt die Grenzfläche wie ein Spiegel. Der Grenzwinkel, bei dem der Effekt der Totalreflexion eintritt, ist abhängig von der Dichte der beiden Medien. Dieses Applet[10] verdeutlicht den Effekt.
5 Aufbau
5.1 Benötigte Komponenten
- Multitouch Komponenten
- Acrylglas Platte
- IR-Leds
- Spiegel
- IR-Kamera
- Beamer
- Computer
- Halterungs Komponenten
- Holz
- Kugelgelenk
- Kleber / Schrauben
Die verwendeten Maße sind nur zum illustratorischen Zweck angegeben und können auf die Bedürfnisse angepasst werden.
5.2 Konstruktion des unteren Aufbaus
Als erstes wird der untere Aufbau gebaut, auf dem später die Acrylglas Halterung montiert wird. Die Bodenplatte ist 73cm*58cm*2cm groß. An den vier Ecken der Bodenplatte werden 58cm lange und 4cm*4cm grosse Beine festgeschraubt. Die Halterung für den Beamer und die Kamera muss auf die Größe der Geräte angepasst werden. Ausgehend von einem Beamer mit den Dimensionen von 23cm*30cm*8cm und 5cm*6cm*8cm für die Kamera, wird die Platte 26cm*38cm groß. Dies sichert einen Spielraum für die spätere Positionierung und Justierung des Bildes. Die Installation des Spiegels ist ebenfalls von den Beamer Dimensionen und der Linsenposition abhängig. Dieser wurde hier in einer Höhe von 17cm an einem Kugelgelenk befestigt. Das Erleichert die Erst- Installation und es ist ein späteres nachjustieren möglich. Zum Schluss wird noch die Kamera rechts neben dem Beamer mit Ausrichtung nach oben befestigt und der Computer installiert.
5.3 Konstruktion der Acrylglas Halterung
Die Halterung für die Acrylglas-Platte und IR-Leds besteht aus 3 Schichten. Auf die erste Schicht werden die Leds und die Acrylglas-Platte befestigt. Die zweite Schicht sorgt für Stabilität von der Seite, damit weder die Projektionsfläche, noch die Strahler verrutschen können. Die dritte und letzte Schicht schützt die Leds vor Beschädigungen und verhindert ebenfalls die Sicht auf die Technik.
5.3.1 Schicht 1
Für die erste Schicht benötigen wir die vertikalen A-Bretter im Format 58cm*6cm, und die Horizontalen B-Bretter im Format 61cm*6cm. Diese werden so zusammengebaut, das sich innerhalb des Rechtecks ein Freiraum mit einem Seitenverhältnis von 4:3 bildet.5.3.2 Schicht 2
Die zweite Schicht benötigt für die Vertikale die C-Bretter im Format 58cm*5cm, und die D-Bretter im Format 61cm*3cm für die Horizontale. Beim Montieren auf die erste Schicht ergeben sich am Linken und Rechten Rand jeweils ein 1 cm große Aufliegeflächen für das Acrylglas. Oben und Unten ergeben sich zusätzlich noch jeweils 2cm für die Led-Leiste.5.3.2.1 IR-Led Leisten
Um eine gleichmäßige IR Ausleuchtung zu gewährleisten, und die für das IR-Licht zurückzulegenden Strecke so kurz wie möglich zu halten, werden die IR-Leisten an den längeren Seiten der Acrylglas-Platte montiert. Die Länge von 63cm und Breite von 2cm je Leiste wird benötigt um ein Verrutschen zu verhindern. Um eine gleichmäßige Ausleuchtung zu gewährleisten, müssen die Leds in einem Abstand von 1,5cm auf der Leiste angebracht werden. Daraus ergibt sich pro Leiste eine Anzahl von 42 Leds. Die Stromversorgung des Computer-Netzteils kann verwendet werden, wenn bei Benutzung von 1,5V Leds 8 Stück in Reihe geschaltet werden. Dies ergibt dann die üblichen 12V. Bei einem Abstand von 1,5cm ergibt das eine Gesamtanzahl von 84 Leds. Um alle Leds an das Netzteil anschließen zu können, wird der Abstand auf 1,43cm verringert. Daraus ergibt sich nun eine Gesamtzahl von 88 Leds.
5.3.2.2 Acryglas-Platte
Vor dem Einlegen der Acrylglas-Platte in die Konstruktion sind 2 wichtige Punkte zu beachten. Zunächst müssen die Seiten der Platte, welche zu den IR-Leds zeigen, poliert werden, um dem IR-Licht einen möglichst ungehinderten Zugang in die Platte zu gewähren. Zusätzlich ist für den Beamer eine Projektionsfläche nötig, damit das Bild auf dem Acrylglas und nicht an der Decke sichtbar wird. D-C-Fix Selbstklebefolie ist ungeeignet da es zu Transparent ist, Transparentpapier bietet ein gutes Bild, lässt aber kaum IR-Licht durch. Geeignet sind Fensterfolie und das Behandeln der Oberfläche mit 800er Schleifpapier.5.3.3 Schicht 3
Für die dritte Schicht werden die gleichen Maße wie bei der ersten Schicht benötigt. Die D-Bretter benötigen 58cm*6cm, und die F-Bretter 61cm*6cm. Diese werden dann auf die zweite Schicht geschraubt, damit bei Wartungsarbeiten leicht auf das innere zugegriffen werden kann.
6 Software
6.1 Bild Vorbereitung
Bevor die eigentliche Detection Engine das Bild der Kamera analysiert, wird dieses mit einigen Filtern im Pre Processing vorbereitet. Diese Filter sind für jede Konstruktion individuell zu konfigurieren. Ein Austausch der Kamera oder das Verändern des Aufstellungsplatzes kann ebenfalls eine Rekonfiguration erfordern.
6.1.1 Hintergrund Entfernung
Als erster Filter wird das Entfernen des Hintergrunds angewendet. Dabei wird versucht das aktuelle Kamera-Bild mit einem zuvor abgespeicherten Hintergrundbild zu vergleichen. Je nach Variante wird das Bild Pixel für Pixel oder Block für Block verglichen. Da Kameras keine konstanten Bilder aufnehmen, wird beim Vergleich die Ähnlichkeit der Pixel oder Blöcke errechnet. Bis zu einem vorher festgelegten Grenzwert (Threshold) wird der verglichene Teil als unverändert betrachtet und dem entsprechend markiert.
6.1.2 Highpass Filter
Als zweite Stufe wird der Highpass Filter angewendet. Die Vorgehensweise ist nicht mit dem in der Elektronik eingesetzten Filter zu vergleichen, da sowohl die Dunklen als auch die Hellen Regionen deutlich in ihrer Intensität verringert werden.
void CPUImageFilter::highpass ( float blur1, float blur2 ) {
// Schritt 1
if(blur1 > 0)
cvSmooth( cvImage, cvImageTemp, CV_BLUR , (blur1 * 2) + 1);
// Schritt 2
cvSub( cvImage, cvImageTemp, cvImageTemp );
// Schritt 3
if(blur2 > 0)
cvSmooth( cvImageTemp, cvImageTemp, CV_BLUR , (blur2 * 2) + 1);
swapTemp();
flagImageChanged();
}
Im ersten Schritt wird ein weichgezeichnetes Bild des Originals erstellt. Im zweiten Schritt wird dieses vom Original subtrahiert. Da beim CV_BLUR Mittelwerte berechnet werden, sind bei der Subtraktion dunkle Regionen stärker betroffen als helle. Anschließend wird in Schritt drei nochmal ein Blur auf das Highpass Bild durchgeführt, um die durch die Subtraktion entstandene Störung zu minimieren.
6.1.3 Amplify Filter
In der dritten Stufe durchläuft das Bild den Amplify Filter. Dieser erhöht die Helligkeit aller Pixel, welche in den vorherigen Schritten durch das Hintergrun-Entfernen und den Highpass-Filter abgenommen haben.
void CPUImageFilter::amplify ( CPUImageFilter& mom, float level ) {
float scalef = level / 128.0f;
cvMul( mom.getCvImage(), mom.getCvImage(), cvImageTemp, scalef );
swapTemp();
flagImageChanged();
}
Zum Verstärken der Helligkeit wird das Bild mit sich selbst multipliziert, das daraus resultierende Produkt wird mit dem Wert von scalef erneut multiplitiert. Daraus ergibt sich für ein Pixel mit dem Wert 20, und einem Level von 30:
float scalef = level / 128.0f; // 30 / 128 = 0,234375 float neuerWert = alterWert*alterWert // 20*20 = 400; neuerWert *= scalef; // 400 * 0,234375 = 93,75;
Bei Konfiguration des Levels mit dem Wert 30, würde also jeder Pixel mit einer Helligkeit größer oder gleich 33 den maximalen 8-Bit Wert von 255 erreichen.
6.1.4 Grenzwert Filter
img.threshold(threshold);
Zum Schluss werden alle Pixel auf 0 zurückgesetzt die unter einem bestimmten Grenzwert liegen.
6.2 Berührungserkennung
6.2.1 Konturen Finden
Als erstes wird das gesamte Bild nach Konturen abgesucht, dazu wird das Bild vorher in ein Monochromes Bild umgewandelt. Dies bedeutet das ein Pixel entweder den Wert 1 oder 0 hat. Ab der Berührungserkennung ist es nun nicht mehr wichtig wie hell ein Punkt ist, da im letzten Schritt der Bild-Vorbereitung alles unter einem Grenzwert zurückgesetzt wurde. Es wird von nun an alles als möglicher Berührungspunkt erkannt.
Der Algorithmus geht dazu das Bild Pixel für Pixel durch und sucht nach einem Bereich mit dem Wert 1. Für jeden gefunden Pixel, wird in der Nachbarschaft nach einem weiteren Positiven Wert gesucht. Dies wird solange durchgeführt, bis in alle Richtugen der Rand der Kontur erreicht wurde.
6.2.2 Auswertung der Konturen
In der Auswertung wird entschieden ob eine Kontur ein Berührungspunkt ist oder nicht. Dazu wird erstmal geprüft ob die Kontur im inneren einen größeren Bereich hat, welcher mit dem Wert 0 belegt ist. Falls die Loch Größe einen Grenzwert überschreitet, wird die Kontur aus der Liste gelöscht.
Als nächstes wird für jede Kontur die Größe einer Elipse ermittelt, welche die Kontur zum größten Teil beinhalten könnte. Die Länge und Breite die Elipse wird wieder mit einem Grenzwert verglichen. Bei Unterschreitung einer der beiden Werte wird die Kontur ebenfalls entfernt. Nun sind in der Liste nur noch Konturen die wir als Berührungspunkte bewerten.
6.2.3 Zuordnung von Berührungspunkten
Nach erfolgter Auswertung alle Konturen ist nun eine Zuordnung zu bereits aus dem letzten Bild bekannten Berührungspunkten notwendig, um dem MT Programm mitteilen zu können, ob dies eine neue Berührung oder ein Halten ist. Dazu wird für jede erkannte Kontur nach einem passenden Gegenstück in der alten Liste gesucht. Die Entfernung, die eine Kontur zwischen zwei Bilder zurücklegen kann, hängt von der Bildanzahl ab, die pro Sekunde von der Kamera aufgenommen und vom System verarbeitet werden kann.
6.3 Weitergabe an Software
6.3.1 Windows Message System
Microsoft hat für die Windows 7 Mulit Touch Funktionalität zwei neue Nachrichten eingeführt, die WM_TOUCH und die WM_GESTURE. Standardmäßig bekommt jeder Prozess die WM_GESTURE Nachricht geschickt, wenn ein Multitouch Gerät am System angeschlossen ist und die Aktion von diesem ausging. Die wichtigen Felder sind dwID, ptsLocation und ullArgument. dwID enthält die Art der Geste, wie zum Beispiel GID_ZOOM oder GID_ROTATE. ptsLocation gibt an, wo sich diese Geste auf dem Bildschrim befindet. ullArgument enthält zusätliche Informationen die zum Auswerten notwendig sind, zum Beispiel enthält diese bei einer GID_ROTATE Nachricht die Größe der Winkeländerung seit Rotationsbeginn.
typedef struct _GESTUREINFO {
UINT cbSize;
DWORD dwFlags;
DWORD dwID;
HWND hwndTarget;
POINTS ptsLocation;
DWORD dwInstanceID;
DWORD dwSequenceID;
ULONGLONG ullArguments;
UINT cbExtraArgs;
}GESTUREINFO, *PGESTUREINFO;
Nach dem Aufruf der RegisterTouchWindow Funktion bekommt das Fenster keine WM_GESTURE sondern WM_TOUCH Nachrichten. Somit bekommt es nun keine ausgewerteten Gesten mehr, sondern nur die vom MT Gerät zurückgelieferten Roh-Daten. Die wichtigen Felder sind in diesem Fall x, y, dwID, dwTime, cxContact und cyContact. X und Y sind das equivalent zu ptsLocation, der einzige Unterschied ist, dass diese jetzt direkt in der Struktur vorhanden sind. dwID enthält die ID der Kontur, die diese beibehalten wird, solange der Berührungspunkt existiert. Dies ist also zum Nachverfolgen von Berührungen sehr wichtig. cxContact und cyContact geben die Höhe sowie Breite an, da die Scanauflösung des MT Gerätes größer als die Ausgabeauflösung sein kann, entsprechen 100 Einheiten in diesen beiden Feldern einem Pixel auf dem Bildschirm.
typedef struct _TOUCHINPUT {
LONG x;
LONG y;
HANDLE hSource;
DWORD dwID;
DWORD dwFlags;
DWORD dwMask;
DWORD dwTime;
ULONG_PTR dwExtraInfo;
DWORD cxContact;
DWORD cyContact;
}TOUCHINPUT, *PTOUCHINPUT;
6.3.2 TUIO Protokoll
Das TUIO Protokoll kombiniert Microsofts WM_TOUCH und WM_GESTURE Nachricht. Die Kommunikation findert über das UDP, TCP oder FLC (Flash Local Connection) Protokoll statt. Hinzugekommen sind bei TUIO Felder, welche die Geschwindigkeit, Beschleunigung und Richtung einer Bewegung oder Drehung enhalten.
Session ID (temporary object ID) Class ID (e.g. marker ID Position Angle Dimension Area, Volume Velocity vector (motion speed & direction) Rotation velocity vector (rotation speed & direction) Motion acceleration Rotation acceleration
7 Fazit
Als ich mich für dieses Thema entschieden habe, bin ich davon ausgegangen, die Algorithmen zur Reinigung des Bildes und Erkennung der Kontur selber schreiben zu müssen. Während meiner Recherchen bin ich dann auf diverse quelloffene Bibliotheken gestoßen, welche schon in einigen Multitouch Projekten verwendet werden. Die OpenCV (Open Source Computer Vision) Library als Beispiel, bietet viele ausgereifte Funktionen an, die auch in ihrer Laufzeit optimiert wurden. Verwendet wird diese unter anderem in CCV (Community Core Vision), einer Software die Bilder aufnimmt, analysiert und per TUIO an die gewünschte Software schickt. Durch die geleistete Vorarbeit sind MTTs, welche beim Erwerb viele Tausend Euro kosten, heute von jeder Privatperson mit einem Budget von 500 Euro selber konstruierbar. Der Aufwand lohnt sich zum aktuellen Zeitpunkt nur, wenn für den Zweck vom MTT schon eine Software existiert oder durch Eigenleistung erarbeitet wird. Im momentanen Alltag gibt es noch zu wenige Programme, die diese neue und wachsende Technologie unterstützen. Ich setze persönlich große Hoffnungen in Multitouch, da diese den Umgang mit Software deutlich erleichtern kann. Dazu muss aber erst mal ein Großteil der heute eingesetzten Software angepasst werden. Da auch große Firmen wie Microsoft Interesse an der Technik haben, bin ich mir sicher, dass sich in den nächsten Jahren in diesem Bereich viel verändern wird.
8 Abbildungsverzeichnis
| Abbildung | Beschreibung |
|---|---|
| 1 | Plato IV Touch Screen Terminal |
| 2 | MTT von Pierre Wellner: Kamera und Projektor |
| 3 | MTT von Pierre Wellner: Projizierter Taschenrechner |
| 4 | MTT von Pierre Wellner: Copy+Paste aus einem Buch |
| 5 | MTT von Pierre Wellner: Duplizieren von Grafiken |
| 6 | MTT von Pierre Wellner: Radieren |
| 7 | Appel iPhone |
| 8 | Microsoft Surface Computing |
| 9 | Wireless Shutterbrille |
| 10 | Totalreflexion eines Laserstrahls |
| 11 | Diffuse Reflexion |
| 12 | Totalreflexion mit punktueller diffuser Reflexion |
| 13 | Unterer Aufbau: Seitenansicht |
| 14 | Unterer Aufbau: Frontalansicht |
| 15 | Acrylglas Halterung: Basis |
| 16 | Acrylglas Halterung: Zweite Schicht |
| 17 | Acrylglas Halterung: IR-Led Leiste |
| 18 | Acrylglas Halterung: Acrylglas einsetzen |
| 19 | Acrylglas Halterung: Dritte Schicht |
| 20 | Acrylglas Halterung: Fertige Halterung |
| 21 | Bild Vorbereitung: Hintergrund Entfernung |
| 22 | Bild Vorbereitung: High Pass Filter |
| 23 | Bild Vorbereitung: Amplify Filter |
| 24 | Bild Vorbereitung: Kontur Größe |
| 25 | Berührungserkennung: Ergebniss |
9 Abkürzungsverzeichnis
| Abkürzung | Bedeutung |
|---|---|
| MT | Multitouch |
| MTT | Multitouch Table |
| IR | Infrarot |
10 Einzelnachweise
- ↑ http://video.google.com/videoplay?docid=5772530828816089246#
- ↑ http://www.visualiseringscenter.se/autopsy
- ↑ http://winfwiki.wi-fom.de/index.php/Einsatzpotentiale_von_Augmented_/_Virtual_Reality_im_Rahmen_technischer_Schulungen#Augmented_.2F_Virtual_Reality_im_Schulungsumfeld
- ↑ http://www.microsoft.com/presspass/press/2007/may07/05-29MSSurfacePR.mspx
- ↑ http://www.riolasvegas.com/casinos/rio/casino-entertainment/i-bar-rio-detail-detail.shtml
- ↑ http://www.golem.de/0908/69264.html
- ↑ https://xd.adobe.com/#/featured/video/160
- ↑ http://ruse.de.ubi.com/index.php?page=about&action=faq
- ↑ http://www.golem.de/0903/66139.html
- ↑ http://leifi.physik.uni-muenchen.de/web_ph07_g8/simulationen/02totalreflexion/index.html
11 Literaturverzeichnis
- Bill Buxton, Microsoft Research, Multi-Touch Systems that I Have Known and Loved, 2007, http://www.billbuxton.com/multitouchOverview.html
- Universität Wien, Lichtbrechung: Sonderfall Totalreflexion, Unbekannt, http://www.univie.ac.at/mikroskopie/1_grundlagen/optik/strahlenoptik/2d_totalrefelxion.htm
- Universität München, Lichtbrechung, 2008, http://leifi.physik.uni-muenchen.de/web_ph07_g8/grundwissen/02brechung/brechung.htm
- TU Clausthal, Total Reflexion, 2008, http://www2.pe.tu-clausthal.de/agbalck/biosensor/totalreflexion.htm
- Daniel Springwald, Multi Touch Table, 2008-2009, http://www.springwald.de/content/projekte/hardware/multitouch/index.html
- Jonathan Tse, Multitouch Interface, 2008, http://www.jontse.com/Multitouch_Interface
- OpenCV Community, OpenCV Repository, 2010, (Für SVN Client) https://code.ros.org/svn/opencv/trunk/opencv
- NUI Group Community, Community Core Vision Repository, 2010, http://nuicode.com/projects/tbeta/repository
- Microsoft, TOUCHINPUT Structure, 2009, http://msdn.microsoft.com/en-us/library/dd317334%28VS.85%29.aspx
- Microsoft, GESTUREINFO Structure, 2009, http://msdn.microsoft.com/en-us/library/dd353232%28VS.85%29.aspx
- Kaltenbrunner, M. & Bovermann, T. & Bencina, R. & Costanza, E. "TUIO - A Protocol for Table Based Tangible User Interfaces", 2005, Vortrag auf dem "6th International Workshop on Gesture in Human-Computer Interaction and Simulation"







