WebCam Bild (LEB) auswerten, wie mache ich das

Gast #2035576
Lesenswert?

Hallo,

folgendes möchte ich machen:
- ich möchte ein Bild mit einer Webcam aufnehmen, z.B. eine 
Gerätefrontseite mit LEDs
- sobald eine LED angeht (die Position ist definiert) bekomme ich einen 
trigger (Zeitstempel) am PC.

wie könnte ich das möglichst einfach realisieren?

ich habe PC, Webcam, welche Software verwende ich dazu (am besten free 
oder open source).

Danke
Poljot
Gast #2035606
Lesenswert?

OpenCV. Die enthaltenen Beispiele enthalten eigentlich alles, was du 
brauchst.

 * Bild capturen
 * interessanten Bereich ausschneiden (Frontplatte)
 * dessen durchschnittliche Helligkeit berechnen, um Umgebungslicht zu 
kompensieren
 * Helligkeit der Position der LED berechnen (evtl. auch die einzelnen 
Farbkanäle auswerten und die Farbe bestimmen)
 * vergleichen
 * ...
 * von vorne beginnen

Die Position der LED sollte man relativ simpel auch mit der Maus ins 
Bild klicken können.
#2035609
Lesenswert?

schau dir OpenCV an.

Ein Bild von ner WebCam läßt sich damit einfach einlesen...sonst gibts 
viele StandardBildverarbeitungsfunktionen.

Aber viel Spaß...OpenCV ist definitiv kein Zuckerschlecken und du musst 
programmieren können.

Manche Webcamsoftware kann auch selbstständig Bildbereiche überwachen 
und bei Bewegung Aktionen auslösen. Evtl. reicht das schon. Namen kann 
ich aber nict nennen
Gast #2035787
Lesenswert?

Im Linuxmagazin [1] wurde in der Reihe Perl-Snapshot ein Programm 
vorgestellt, welches mit Hell/Dunkelerkennung an festgelegten Punkten 
das Webcambild eines LCD-Displays (RSA-Token) ausliest. Mit wenig 
Aufwand sollte es an Deine Anforderungen angepasst werden könne

Die Realisierung erfolgte über die CPAN-Module 
Video::Capture::V4l::Imager und YAML

[1] 
http://www.linux-magazin.de/Heft-Abo/Ausgaben/2007/05/Zufall-unter-Beobachtung
#2036475
Lesenswert?

A. B. schrieb:
> Aber viel Spaß...OpenCV ist definitiv kein Zuckerschlecken und du musst
> programmieren können.

ICh find OpenCV klasse
folgendes grabt bilder von der WebCam, macht nen Sobel drauf und zeigt 
das Originalbild und das Resultat in jeweils eigenen Fenster an:
1
  CvCapture* cap = cvCreateCameraCapture(-1); /* erste camera */
2
  IplImage* img;
3
  IplImage* dest;
4
  cvGrabFrame(cap);             /* ein frame schon mal holen   */
5
  img = cvRetrieveFrame(cap);   /*                             */
6
  dest = cvCloneImage(img);     /* um ausgabebild zu erzeugen  */
7
  cvNamedWindow("cam");         /* fenster erzeugen            */
8
  cvNamedWindow("Sobel");
9

10
  /* schleife, solange keine taste gedrückt und kein fenster geschlossen wird */
11
  while(    (-1 == cvWaitKey(1))
12
         &&  cvGetWindowHandle("cam")
13
         &&  cvGetWindowHandle("Sobel"))
14
  {
15
    cvGrabFrame(cap);
16
    img = cvRetrieveFrame(cap);
17

18
    cvSobel(img, dest, 1, 0, 3);  /* sobel in x-richtung */
19
    cvShowImage("cam", img);      /* bilder anzeigen */
20
    cvShowImage("Sobel", dest);
21
  }
22

23
  cvReleaseCapture(&cap);
24
  cvDestroyAllWindows();
25
  cvReleaseImage(&dest);

viel einfacher gehts ja fast nicht mehr.
DAs ganze in eine Datei zu schreiben sind nur wenige zeilen mehr

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren