- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 9 von 9

Thema: Webcam Auslesen mit Delphi

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    23.12.2005
    Beiträge
    16

    Webcam Auslesen mit Delphi

    Anzeige

    E-Bike
    Liebe Robonetzler,
    wie kann ich in Delphi das Signal einer handelüblichen Webcam auslesen. Ich bräuchte eine Funktion, die mir ein aktuelles Bild zurückliefert. Wie es dann weiter geht müsste eigentlich klar sein. Es kommt dabei kaum auf Geschwindigkeit an. Die sicherlich sehr informationshaltigen Threads zu dem Thema waren, was die Lösung meines Problems angeht, nicht wirklich aufschlussreich. Ich lass mich aber gerne eines besseren belehren.

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    23.06.2004
    Beiträge
    73
    Ich Suche auch schon recht lange nach einer Lösung.
    Bin jetzt dabei den Webcamtreiber anzusteuern oder muss mir selbst einen Treiber schreiben. Ich hab nur keinen Schimmer wie das geht

    Edit: Ich habe dein "kaum" bei der Geschwindigkeit überlesen, also kannst du ganz normal Video for Windows (VfW) oder WIA oder WDM(?) nutzen.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    23.12.2005
    Beiträge
    16
    Ganz normal ist gut. Kannst du mir eine konkrete Anleitung geben? Das wäre toll.

    Treiber schreiben dürfte recht kompliziert sein.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.06.2005
    Ort
    DD
    Beiträge
    519
    Hi!
    Geht ganz einfach:

    1. Erst mal machst du ein neues Formular und läst alles wie es ist (Name, Größe usw.)
    2. Setzt du ein TPanel auf das Formular
    3. Löscht du den gesamten Code des Formulars und setzt diesen ein
    Code:
    const 
      WM_CAP_DRIVER_CONNECT = WM_USER + 10; 
      WM_CAP_EDIT_COPY = WM_USER + 30; 
      WM_CAP_SET_PREVIEW = WM_USER + 50; 
      WM_CAP_SET_OVERLAY = WM_USER + 51; 
      WM_CAP_SET_PREVIEWRATE = WM_USER + 52; 
    
    implementation 
    
    {$R *.dfm} 
    
    //Dann brauchst du noch das hier 
    function capCreateCaptureWindow(lpszWindowName: LPCSTR; 
      dwStyle: DWORD; 
      x, y, 
      nWidth, 
      nHeight: integer; 
      hwndParent: HWND; 
      nID: integer): HWND; stdcall; 
      external 'AVICAP32.DLL' name 'capCreateCaptureWindowA'; 
    
    procedure TForm1.LaberLaber; //halt irgendne Prozedur, ich habs im Formcreate, damit ich gleich was seh ^^ 
    var handle:THandle; 
    begin 
      handle := capCreateCaptureWindow('Video',ws_child+ws_visible, 0, 
      0, 320, 240, Panel1.Handle, 1); //Wie du siehst, brauchst du ein Panel in diesem Beispiel ;-) 
      SendMessage(handle, WM_CAP_DRIVER_CONNECT, 0, 0); 
      SendMessage(handle, WM_CAP_SET_PREVIEWRATE, 30, 0); 
      sendMessage(handle, WM_CAP_SET_OVERLAY, 1, 0); 
      SendMessage(handle, wm_cap_set_preview, 1, 0); 
    end;
    //orig von http://www.delphipraxis.net/post282535.html#282535
    Gruß, MK

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    28.09.2004
    Beiträge
    32
    Naja, ganz so gehts dann doch nicht...
    Da es ja eine Webcam ist, wird die auch über HTTP angesprochen
    wie das geht, kann man im Browser, wo man ja auch die Bilder ansehen kann
    nachprüfen.
    In Delphi gibts (zumindest bei 7, glaube auch bei 5) die Komponente TIDHTTP
    auf der Komponentenseite Indy Clients.
    Port, URL bzw IP einstellen, das Protokoll ausführen
    mit den methoden IDHTTP.post bzw get und man sollte die Images
    als Bilddaten bekommen. Ich glaube nicht das die Kamera streamt, dann
    müßte man es etwas anders machen
    Gruß
    root

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.06.2005
    Ort
    DD
    Beiträge
    519
    Ich gehe davon aus, er hat eine USB Webcam, die an dem Rechner hängt, wo er auch das Delphi-Programm ausführen will.

  7. #7
    Servus Leute,
    also wenn es um Probleme mit Delphi geht kann ich nur
    www.delphi-forum.de empfehlen.

    Zu diesem Problem gibt es einen Link von meiner Seite aus:
    http://www.delphi-forum.de/viewtopic...ghlight=webcam

    Einfach mal bei der Suche "Webcam" eingeben und durchblättern. Dort gibt es komplexe als auch einfache Beispiel.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    23.12.2005
    Beiträge
    16
    Vielen Dank für die ganzen Antworten.
    Das sieht doch machbar aus.
    Ja ich will eine USB-Webcam nehmen (einfach weil billig und unkompliziert)

  9. #9
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    53
    Beiträge
    502
    Einfach nach Anleitung vorgehen
    http://www.delphipraxis.net/topic711...den+frame.html

    und mit "FBitmap.SaveToFile()" in der Callback Funktion kannst du sogar noch je nach Timereinstellung das aktuelle Bild speichern.

    sast

    雅思特史特芬
    开发及研究

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests