C++ foto mit webcam machen



  • Ich weiß das dieses Thema schon mal in diesem oder anderen Foren angesprochen wurde doch da alle links die ich gefunden habe veraltet sind und nicht mehr funktionieren hier nochmal die Frage: Wie kann ich mit Hilfe von C++ Bilder über die Webcam machen. Gibt es bei Windows irgendwelche Boardmittel ? Währe schön wenn ihr mit sowohl mit Windows XP/Vista/7 helfen könntet als auch mit Windows 8 da ich gesehen habe das es unterschiede gibt.



  • das einfachste ist wohl, wenn du dir die OpenCV Bibliothek besorgst.
    Damit kannst du mit wenigen Codezeilen auf die Webcam zugreifen (Klasse VideoCapture).



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • mit der Windows API geht das aber auch.. Hab ich mal gemacht aber das ist Jahrzehnte her.
    Google: winapi capture camera hilft

    http://www.dreamincode.net/forums/topic/193519-win32-webcam-program/



  • Alles was man unter Windows irgendwie macht ohne nen eigenen Treiber zu schreiben geht letztlich auf die WinAPI. Also geht grundsätzlich alles was man unter Windows machen kann (ohne nen eigenen Treiber zu schreiben) "auch mit der WinAPI".

    Es gibt aber Dinge die will man nicht unbedingt direkt mit WinAPI programmieren, weil es mit WinAPI ungefähr ganz viel mehr Aufwand ist.

    Was in OpenCV ein paar Zeilen sind die man sich mal schnell aus nem Beispiel kopiert, sind mit WinAPI oft ein paar hundert bis paar tausend Zeilen die man sich nicht ganz so schnell aus nem wesentlich verbuggteren Beispiel kopiert. Und sollte man zu den vollkommen irren Programmierern gehören die den Code den sie schreiben auch verstehen wollen... dann wird es wirklich viel Aufwand.



  • najaaa. 25 zeilen..
    Die Frage war aber nach Windows Boardmitteln und auch wenn OpenCV dahingehend sicher einfacher ist, ist es leider kein Windows Boardmittel..



  • DocJunioR schrieb:

    najaaa. 25 zeilen..
    Die Frage war aber nach Windows Boardmitteln und auch wenn OpenCV dahingehend sicher einfacher ist, ist es leider kein Windows Boardmittel..

    keine Ahnung was der Fragesteller will, der meldet sich ja nicht mal mehr.

    Unabhängig davon: gut ... man liest nun ein Bildchen ein. Ich nehme an, in den meisten Fällen möchte man damit auch noch was machen. Der Pixelsalat bringt ja vorerst einmal nichts.
    Entweder man möchte das Bild speichern - wie macht man das? Selbst eine Funktion zum BMP schreiben bauen? Doch lieber PNG? Ahh, da gibts ja libpng oder so ähnlich. OK, der Kontrast ist schlecht. Vielleicht noch schnell das Histogramm etwas spreizen.......
    Du siehst: klar kann man alles selber irgendwie zusammenbauen. Aber wenn man gleich schon OpenCV nimmt, dann hat man all diese Funktionen schon mit dabei.
    Ich schreibe imwrite und habe das Bild auf der Platte, ich verwende entsprechende Bildverarbeitungsfunktionen um das Bild zu verbessern.
    Dazu muss man halt wissen, was man möchte. Wenn man wirklich nur das Bild einlesen will und irgendwo auf einem Fenster darstellen möchte, gut, dann kann man von mir aus mit WinAPI und GDI alles irgendwie selbst bauen.
    Aber sobald auch nur die geringste Wahrscheinlichkeit besteht, dass man das Bild weiterverarbeiten oder in verschiedenen Formaten (z.B. auch als Video!) speichern möchte, würde ich sofort zu OpenCV greifen.



  • DocJunioR schrieb:

    najaaa. 25 zeilen..

    Das gesamte Beispiel hat 300. Wenn einem alles neu ist was da gemacht wird (Fenster, Fensterklassen, ...), dann braucht man auch fast die ganzen 300 Zeilen.

    DocJunioR schrieb:

    Die Frage war aber nach Windows Boardmitteln und auch wenn OpenCV dahingehend sicher einfacher ist, ist es leider kein Windows Boardmittel..

    Da hast jetzt du wieder Recht 🙂



  • Sry das ich mich nicht mehr gemeldet habe hatte Probleme mit dem Internet werde mir das mit WinAPI mal anschauen wenn das zu kompliziert/viel ist werde ich OpenCV nehmen. Vielen Dank für eure Hilfe


Log in to reply