Drei Webcams am PC - wie kann ich eine besimmte zur Laufzeit auswählen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von EightBitWitch.

    Drei Webcams am PC - wie kann ich eine besimmte zur Laufzeit auswählen

    Hallo,

    ich habe folgendes Setting: Im meinem Laptop ist ein WebCam eingebaut und ich habe zwei weitere WebCams, die ich für ein Projekt (Robotik) benötige per USB angeschlossen.

    Das habe ich inzwischen herausgefunden:
    Ich kann mir das Preview der "Standard-Kamera" (bei mir immer die eingebaute WebCam) in einer PictureBox anzeige lassen.
    Nach langen Suchen, ich bin was APIs angeht sehr unerfahren, habe ich ich eine Möglichkeiten gefunden, eine Kamera über einen Dialog auswählen zu können, was über SendMessage WM_CAP_DLG_VIDEOSOURCE geht.

    Nun würde ich aber gerne die Kameraauswahl direkt in meiner Anwendung machen können, so das die Anwendung z.B. beim Start zu zuletzt benutzte Kamara wieder auswählt, vorausgesetzt diese ist verfügbar (per USB angeschlossen).
    Bisher habe ich leider nicht passendes gefunden.
    Nun würde ich aber gerne die Kameraauswahl direkt in meiner Anwendung machen können, so das die Anwendung z.B. beim Start zu zuletzt benutzte Kamara wieder auswählt, vorausgesetzt diese ist verfügbar (per USB angeschlossen).
    Bisher habe ich leider nicht passendes gefunden.
    Initialisierungsdatei maybe ? :X

    Da speicherste die webcam ab als text oder halt als link-text und überprüfst ob die beim nächsten start noch da is wenn nich wird die nächstbeste ausgewählt ...

    drzero schrieb:

    Initialisierungsdatei maybe ? :X

    Da speicherste die webcam ab als text oder halt als link-text und überprüfst ob die beim nächsten start noch da is wenn nich wird die nächstbeste ausgewählt ...

    Mein Problem ist nicht, das sich das Programm die ausgewählte Kamera merken kann, sondern das auswählen der Kamera (eine von drei).


    MAAN10 schrieb:

    http://www.codeproject.com/KB/audio-vide…ectShowNET.aspx


    Danke für den Link zu diesem Beispiel. Leider habe ich von DirectShow so gar keine Ahnung.
    Hat jemand eine Idee, wo ich dort ansetzen muss um eine VideoQuelle auswählen zu können, bzw. wo ich Infos her bekomme, wo ich ich das nachlesen kann. Wie gesagt, DirectShow ist für mich ein ganz neues Gebiet, mit dem ich mich bisher noch nie beschäftigt habe.

    Ich bin mir auch nicht sicher, ob ich dieses Monster "DirectShow" wirklich brauche, damit ich eine von drei WebCam auswählen kann. Handisch, also über einen von Windows bereit gestellten Dialog (SendMessage WM_CAP_DLG_VIDEOSOURCE) kann ich als Bnutzen das auch ohne DirectShow und ich kann das Bild der gewählten Kamera auch sehr einfach anzeigen lassen, geht eben alles über die avicap32.dll und viel über das versenden von Nachrichten (SendMessage).

    Aber wenn ich mit DirectShow evtl. leichter zum Ziel komme soll es mir auch recht sein, denn ich möchte einfach nur das Bild der gewählten Kamera zur Verfügung habe, um dieses dann weiter zu verarbeiten. Das ganze ist für ein Robotik-Projekt (Lego Mindstorms NXT).

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „EightBitWitch“ ()

    Ich bin da selbst noch am Anfang. Aber es gibt die Möglichkeit dem NXT über Bluetooth (via virtual SerialPort) Befehle zu senden. Die Möglichkeiten und Befehle sind hier beschrieben: mindstorms.lego.com/Overview/nxtreme.aspx

    Desweiteren gibt mit mindsqualls.net/ eine Net-Library für die Kontrolle des NXT.

    Mein Ziel ist es, das den NXT (via PC/Bluetooth) per Visual Basic steuere und dazu auch Bild einer WebCam (oder auch mal zwei - ich habe zwei LEGO VisionCommand-Kameras) auswerte. So soll der NXT z.B. den Zauberwürfel (Rubik Cube) lösen.

    Ich habe nicht gedacht, das es in der heutigen Zeit noch so Problematisch/Kompliziert ist, mit einer WebCam per Visual Basic zu arbeiten.
    Leider scheint es kein WebCam-Control zu geben, das man einfach "einbauen" kann, denn eigentlich wollte ich mich mit der Programmierung des NXT beschäftigen und nicht mit diesen Windows-API-Kram.

    Das VB09-Projekt, mit dem ich im Moment am Testen bin (nur WebCam) findest du als Anhang, vielleicht hast du ja noch Ideen. Ich habe das Projekt um den VideoSource-Dialog erweitert und dieser geht bei "Camera/Start Kamara" als erstes auf. So kann ich wenigstens die Kamera händisch auswählen, aber leider noch nicht zur Laufzeit durch das Programm selbst.

    EDIT:
    Ich habe soeben die professionelle Komponente ImagingControl für .Net gefunden. Ich hoffe das es davon auch eine Version für eine rein private Nutzung gibt und habe den Anbieter bereits angeschrieben.

    Kennt evtl. jemand ein OpenSource oder weniger teure Komponete aus anderer Quelle, die ein ähnliche Funktionalität zur Verfügung stellt?
    Dateien
    • WebCamViewer.zip

      (79,46 kB, 190 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „EightBitWitch“ ()