Frage

Ich versuche, ein DIY-Touchscreen zu machen und möchte es in der lokale Wissenschaft fair geben, sondern wollte es auf dem programing Aspekte des Multi-Touch zu tun. Mein Problem liegt darin, dass ich nie mit Analysieren von Bildern gearbeitet haben (von einem USB-basierten Web-cam).
Ich mag dieses Projekt in C #, wenn möglich (C ++ - wenn Not am Mann ist) tun
Ich brauche ein schwarzes Bild zu analysieren (von einem USB-Web-Kamera) und dann erkennen, wenn weiße Flecken in den Blick kommen. Wie würde ich über das tun dies gehen? --- ist es ein bekanntes Verfahren zum Erfassen der Änderung jedes PXL vs Analyse? wenn so ein Hinweis darauf, wo dies wäre schön :)
Auch Wie würde ich bekomme die Eingabe von dem Web-Cam über USB? --- wo kann ich die Bibliotheken / DDL bekommen?
Ich habe einige Programme gesehen, die mit dieser Arbeit, aber sie wandeln die Bilder - die Zeit und Prozessorgeschwindigkeit nimmt ... ist es eine Möglichkeit, die rohen imput Bild / Daten zu benutzen?
HELP?

War es hilfreich?

Lösung

Wenn Sie Ihre Eingabe haben haben Sie (vorausgesetzt, es ist vollkommen dunkel und perfekt heller Kontrast) Sie eine Matrix von Werten, die ähnlich wie diese haben: (Graustufen)

0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 256 0 0 0 0 0
0 0 0 0 0 256 256 256 0 0 0 0
0 0 0 0 0 0 256 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 

Ihre Aufgabe müßte Segment aus dem Abschnitt der rechten Farbwerte (256) und zu bestimmen, Position. Um Bewegung [vorausgesetzt, Sie verfolgen nur ein Objekt] Sie müßten die nächste Position des Blobs vergleichen mit dem vorherigen.

In der realen Welt, vor allem mit einer Webcam werden Sie nie einen festen dunklen Hintergrund mit einem guten Kontrast erhalten. Die Webcam ist mit niedriger Auflösung, das Licht nie perfekt ist, und Rauschen hinzugefügt wird in der Linse und CCD Defekte / Farbe Annäherung.

Darüber hinaus können Sie Probleme mit der Blobs Bewegungsverfolgung (ein Blob an anderer Stelle auf der Oberfläche misdectected werden kann. Wenn Sie versuchen, zwei Blobs verfolgen Sie werden in mehr Probleme laufen.

Einige dieser Fragen sind:

  1. Blob Kollision (wie Sie wissen, welche blob geht, wo)
  2. Blob Quer overs (haben die Blobs Seiten wechseln, oder haben die Blobs in umgekehrter Richtung bewegen sich von vorherigen Fahrt)
  3. Blob Kombinieren (wo zwei Blobs werden eins)

Sie die Kamera mit C # greifen können Sie zu überprüfen dies. WIA ist nicht die schnellste Methode zu verwenden, um Bilder aufzunehmen. Allerdings ist es viel einfacher zu handhaben. Mein Vorschlag an Sie, wenn Sie immer noch interessiert sind, dabei ist, zwei Bilder in Photoshop zu ziehen und die Markierungen zu verfolgen. Es ist nicht so aufregend, aber es wird Ihnen helfen, das Problem einfacher und entspannen die Problembeschreibung Angriff nehmen.

Andere Tipps

Was Sie wollen, ist "Blob-Erkennung". Hier ist ein guter Thread über eine blob Bibliothek

Es gibt einen Haufen von Multi-Touch / Computer-Vision-Bibliotheken und Software gibt bereits. Die beste Quelle für diese Sache ist wiki.nuigroup.com . Besonders rel="nofollow die Frameworks und Bibliotheken Abschnitt. Zur Zeit ist es nicht zu viel Info C # gibt, aber wenn Sie etwas finden, stellen Sie sicher, dass Sie es für alle an diesem Wiki setzen.

Es gibt auch die NuiGroup Forum C # (.NET / Silverlight / WPF) Abschnitt das sollte man viel helfen. Es gibt einige große Hilfe in dieser Gemeinschaft gegeben werden.

Als Ort wit den Web-Cam zu starten, würde ich beginnen hier:

http://www.hanselman.com/blog/CapturingVideoAWebCameraUsingWIANotPossible.aspx

Sie werden ein paar Links zu folgen, aber ich schlage Sie hier gestartet werden, da dies der Artikel ist, wo Scott spricht über verschiedene Herausforderungen und häufig gestellte Fragen und Links zu mehr Informationen.

Um Bilder von der Webcam des AForge Rahmen ist tot einfach zu bedienen! Schauen Sie sich die Bewegungserkennung Beispielanwendung für die Code-Ernte Zwecke:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top