![]() |
Zugriff auf aktuelles Bild der Webcam
Hallo,
Zur Zeit schreibe ich ein Programm, das (wenn es fertig ist) auf das aktuelle Bild einer Webcam zugreifen und auch eine Analyse vornehmen soll. Momentan arbeite ich noch mit Testbildern, die ich manuell mit der Webcam gemacht habe. Jetzt möchte ich dem Programm beibringen, die Bilder selbst von der Webcam zu holen und habe dazu folgendes in der Code-Library gefunden: ![]() Es funktioniert soweit auch ganz gut, auf dem Panel wird das Bild auch angezeigt. Doch wie kann ich das aktuelle Bild beispielsweise speichern und in einem Image anzeigen lassen? Da steht irgendwas von setDIBits, aber ich habe von dem ganzen leider keine Ahnung :-( Schon mal vielen Dank im Voraus für eure Hilfe! |
Re: Zugriff auf aktuelles Bild der Webcam
hi,
Zitat:
Delphi-Quellcode:
..was also in etwa heißen soll, dass in dieser Zeile die Bits von FBitmap2 (welches zur Dekomprimierung ja in ein DIB umgewandelt werden musste) nun mittels dieser "setDIBits"-Funktion wieder in die Bits eines normalen TBitmaps (="FBitmap") zurücküberführt werden. Und dieses ganz normale TBitmap (="FBitmap") kannst Du jetzt jederzeit per einfachem Button-Click abspeichern:
// laden der DIB-Bits in das normale (DDB-)FBitmap zur weiteren ganz normalen Bildbearbeitung
Delphi-Quellcode:
..oder einem Image zuweisen:
procedure TForm1.Button1Click(Sender: TObject);
begin FBitmap.SaveToFile(DeinFilename); end;
Delphi-Quellcode:
edit:
procedure TForm1.Button1Click(Sender: TObject);
begin Image1.Picture.Assign(FBitmap); end; ..oder eben sonst irgendwie analytisch untersuchen oder weiterverarbeiten, wie ja in diesem gelinkten Thread auch schon angedeutet wurde. |
Re: Zugriff auf aktuelles Bild der Webcam
Ah cool, hätte nicht gedacht, dass es so einfach ist :D
Vielen Dank! |
Re: Zugriff auf aktuelles Bild der Webcam
Da ich eine weitere Frage zu diesem Thema habe, grabe ich diesen Thread mal wieder aus:
Beim Initialisieren erscheint ja ein Dialog, in dem man verschiedene Sachen einstellen kann, u.a. auch die Auflösung des Bildes. Ich habe hier eine Webcam mit 1,3 Megapixel, doch die größte Auflösung, die ich in dem Dialog auswählen kann, ist 640x480. Was muss ich ändern, damit ich auf die volle Auflösung der Webcam zugreifen kann? |
Re: Zugriff auf aktuelles Bild der Webcam
Das kannst Du mal mit
![]() |
Re: Zugriff auf aktuelles Bild der Webcam
mehr dazu kannst du auch hier finden:
![]() |
Re: Zugriff auf aktuelles Bild der Webcam
Wie würde das denn mit WM_CAP_SET_VIDEOFORMAT funktionieren?
Momentan steht bei mir ja WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44 Das ist für mich (ist für mich das erste Mal, dass ich in Delphi auf ne Webcam zugreife, also Neuland) irgendwie recht intransparent. Was müsste den bei WM_CAP_SET_VIDEOFORMAT hinter dem "=" stehen, damit ich höhere Auflösungen bekomme? |
Re: Zugriff auf aktuelles Bild der Webcam
Das steht natürlich auch in dieser "video for windows"-Unit "vfw.pas", die im Tut gelinkt ist:
WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45; Also, einfach zuerst den BitmapInfo-Record ("FCapBitmapInfo") entsprechend laden und ihn dann mit SendMessage abschicken. Im Link von Andi1985 wird diese Methode übrigens auch schon versucht. Allerdings, allzu große Hoffnungen sollte man dabei auch wirklich nicht hegen. Denn wie es ja auch schon im msdn-Kommentar dieser Message drinsteht: Das Videoformat ist Geräte-spezifisch, dh. der Treiber muss das auch können. Und imo wird dieser VideoFormat-Dialog aber auch schon genau das anzeigen, was der Treiber diesbezüglich auch bloß kann ...werde da event. aber auch gerne eines besseren belehrt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz