www.mikrocontroller.net

Forum: PC-Programmierung WebCam Bild (LEB) auswerten, wie mache ich das


Autor: poljot (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: ./. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
go1984

ist aber nicht free.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. B. (funky)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: JojoS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es gibt einige WebCam Programme zu Überwachungszwecken, die können 
aufzeichnen oder Aktionen auslösen sobald etwas im Sichtbereich 
passiert, z.B. http://www.visiongs.de/
Bei einer älteren Creative Cam hatte ich auch mal so ein Minimal Tool 
dabei, da braucht man sicher nicht selber anfangen zu programmieren.

Autor: poljot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh, vielen Dank für die schnellen Antworten. Ich kann programmieren, 
sollte aber dennoch so einfach wie möglich gehen. Also gerne bereit für 
weitere Vorschläge.

Autor: bgm (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: poljot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..ich bin doch kein Linux spezialist :-)

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht 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:
  CvCapture* cap = cvCreateCameraCapture(-1); /* erste camera */
  IplImage* img;
  IplImage* dest;
  cvGrabFrame(cap);             /* ein frame schon mal holen   */
  img = cvRetrieveFrame(cap);   /*                             */
  dest = cvCloneImage(img);     /* um ausgabebild zu erzeugen  */
  cvNamedWindow("cam");         /* fenster erzeugen            */
  cvNamedWindow("Sobel");

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

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

  cvReleaseCapture(&cap);
  cvDestroyAllWindows();
  cvReleaseImage(&dest);



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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.