Webcam -> Laserpointer auf weißer, Pfad nachzeichnen.

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

timmeTheOnly

Betreff: Webcam -> Laserpointer auf weißer, Pfad nachzeichnen.

BeitragDi, März 18, 2008 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich habe versucht den Titel so gut wie möglich zu gestalten. Ist mir denk ich nicht so gelungen.

Hier nochmal:

Ich will ein Programm schreiben, welches meine Webcam anspricht (danke Panno), den Punkt eines roten Laserpointers auf einer weißen Wand erkennt und eine Spur zeichnet, wo er schon überall war (später vielleicht auch mit Motoren darauf ausrichten).

Mein Problem:

Wie bekomm ich raus, wo der Punkt gerade steckt. Er wird von der Webcam wegen der enormen Helligkeit in der Mitte weiß gezeichnet.

MfG und Danke im Vorraus,
timme
 

Dreamora

BeitragDi, März 18, 2008 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du ihn nicht siehst, garnicht ...
da musst du erst an den Contrastsettings der CAM und der Beleuchtung der wand arbeiten.

danach kannst du via farbvergleich das zentrum des "roten bereichs" feststellen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

timmeTheOnly

BeitragDi, März 18, 2008 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke erstmal.

Gibt es zum Farbvergleich Tutorials oder Anleitungen die du kennen würdest?
 

Dreamora

BeitragDi, März 18, 2008 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
brauchst du eigentlich nicht.

einfach die farben auslesen,wenn du einen "überschuss" an rot feststellst das merken und in eine liste eintragen inkl koordinate und am schluss den "schwerpunkt" der koordinaten berechnen.
überschuss an rot heisst wenn rot um einiges stärker ist als grün und blau -> es also nicht mehr ein grauton an der wand sein kann.

das kann man natürlich noch sehr viel komplizierter und mächtiger machen, macht aber bei einem punkt den du suchst nicht wirklich sinn.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

timmeTheOnly

BeitragDi, März 18, 2008 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke dir, ich werd es erstmal ausprobieren.

[edit]

Zweites Problem, ich komme mit der DLL nicht zurecht. Wie bewege ich die neue DLL (Methyl leider weg) dazu, nichts anzuzeigen, sondern nur in eine Bank zu speichern?
 

timmeTheOnly

Betreff: Fortschritte

BeitragMi, März 19, 2008 13:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hiho,
ich bins wieder.

Hab die DLL jetzt zum laufen gebracht und mir überlegt (auch weil es sowas wie ein Pathtracking-Programm schon gab), ein Spiel damit zu programmieren.

So läuft es ab:

Webcam auf ne Art Stativ
Auf Wand ausrichten
Kleine Markierung an die Wand
Mit Tool kalibrieren
Zimmer verdunkeln

Ab einem gewissen Abstand des Punktes werden die Richtungsvariablen aktiviert.


Hier mal ein Bild zum aufbau:

user posted image


Und eins zur Verwendung der (Lein-)Wand


user posted image

The Shark

BeitragMi, März 19, 2008 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Damit könnte man doch auch so ein Spiel realisieren, in dem man mit ner "Waffe" mit einem Laserpointer drauf auf Gegner zielt, oder?
 

timmeTheOnly

BeitragMi, März 19, 2008 13:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht ganz, du könntest mit dem Laserpointer zielen.

Ich mach gleich mal ein Release.

The Shark

BeitragMi, März 19, 2008 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Das habe ich ja gemeint...

Da gabs doch früher die automaten, wo man auf den bildschirm "geballert hat"
 

timmeTheOnly

BeitragMi, März 19, 2008 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf den Bildschirm geht leider nicht, das wäre dann eine zu große Rückspiegelung des Lasers. Du musst dir eine extra Stück Wand oder eine Leinwand einrichten. Schau dir doch einfach mal die Demo an die ich gerade uploade.


DEMO

Wie ihr euere Leinwand einrichten müsst seht ihr auf den Bildern zwei Post meinerseits vorher.

Vertex

BeitragMi, März 19, 2008 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir mal Digitale Bildverarbeitung an!

Folgende Idee aber:
- Bild auf den Rotkanal reduzieren
- alle Pixel unter einen Schwellenwert auf schwarz setzen
- alle horizontalen Linien aufsuchen
- alle vertikalen Linien aufsuchen
- schneidende horizontale und vertikale Linien zu einem Objekt gruppieren
- Größe (Anzahl der Pixel, sprich Summe aller Linien) der Objekte bestimmen
- Mittelpunkt des größten Objekts errechnen

So wird der größte zusammenhängende Pixelhaufen gefunden und zum Teil störendes Grundrauschen ausgeschlossen. Der Mittelpunkt ist dann dein Laserpunkt.

mfg olli
vertex.dreamfall.at | GitHub
 

timmeTheOnly

BeitragMi, März 19, 2008 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, werds mir nacher ansehen.
 

Dreamora

BeitragMi, März 19, 2008 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
rotkanal reduzieren bringt hier wenig, der schwellenwert wohl auch nicht.
Weisse wand -> rotkanal > 200
schatten an der wand von den lichtquellen, falls unebene wand -> rotkanal < 100

Darum auch der "physikalischen" Ansatz, dass man einfach die Rotkanal Abweichung (von R, B) nimmt und die Koordinate des Pixels damit gewichtet und so als Type zb in eine Liste einträgt und die gewichte aufsummiert.
Am Schluss dann einfach alle Listeneinträge summieren wobei man das gewicht durch das summierte gesamtgewicht teilt.
Damit ergibt sich auf natürliche Weise das gewichtete Zentrum am Ende der Berechnung. Und zwar unabhängig von schwellenwerten und damit von der absoluten Helligkeit der Wand und der Qualität der Webcam (was ja ein zweites Problem ist wenn der Kontrast einfach nur grottig ist)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Plasma

Betreff: hmm

BeitragMi, März 19, 2008 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
um dingen wie pixelfehler die durch rauschen des sensors (cmos) entstehen zu entgehen sag ich nur
eye toy camera !!! kaufen und anschließen .es ist die beste die ich je sah .... Shocked am pc
Für mein ei-toy (pc) Spiel welches nie rauskam (genau deswegen) hab ich extra ne logitech gekauft , ich dussel !

naja was solls
 

timmeTheOnly

BeitragMi, März 19, 2008 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab ne Eye Toy hehe ^^. Aber leider nur die SCEH-0004, die kleine silberne. Gaaanz schwer die Treiber zu bekommen. Naja, bei mir hats heut beim ersten Versuch geklappt.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group