AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Zugriff auf aktuelles Bild der Webcam
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf aktuelles Bild der Webcam

Ein Thema von tryanderror · begonnen am 23. Aug 2008 · letzter Beitrag vom 30. Okt 2008
Antwort Antwort
tryanderror

Registriert seit: 23. Aug 2008
10 Beiträge
 
#1

Zugriff auf aktuelles Bild der Webcam

  Alt 23. Aug 2008, 17:45
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:

http://www.delphipraxis.net/internal...ct.php?t=71146

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!
  Mit Zitat antworten Zitat
r29d43

Registriert seit: 18. Jan 2007
287 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Zugriff auf aktuelles Bild der Webcam

  Alt 23. Aug 2008, 19:18
hi,

Zitat von tryanderror:
...Doch wie kann ich das aktuelle Bild beispielsweise speichern und in einem Image anzeigen lassen? Da steht irgendwas von setDIBits...
steht doch in der Kommentarzeile (dieser SetDIBits-Anweisung) schon quasi drüber:

// laden der DIB-Bits in das normale (DDB-)FBitmap zur weiteren ganz normalen Bildbearbeitung ..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:


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  FBitmap.SaveToFile(DeinFilename);
end;
..oder einem Image zuweisen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1.Picture.Assign(FBitmap);
end;
edit:

..oder eben sonst irgendwie analytisch untersuchen oder weiterverarbeiten, wie ja in diesem gelinkten Thread auch schon angedeutet wurde.
  Mit Zitat antworten Zitat
tryanderror

Registriert seit: 23. Aug 2008
10 Beiträge
 
#3

Re: Zugriff auf aktuelles Bild der Webcam

  Alt 24. Aug 2008, 16:12
Ah cool, hätte nicht gedacht, dass es so einfach ist

Vielen Dank!
  Mit Zitat antworten Zitat
tryanderror

Registriert seit: 23. Aug 2008
10 Beiträge
 
#4

Re: Zugriff auf aktuelles Bild der Webcam

  Alt 29. Okt 2008, 20:48
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?
  Mit Zitat antworten Zitat
r29d43

Registriert seit: 18. Jan 2007
287 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Zugriff auf aktuelles Bild der Webcam

  Alt 30. Okt 2008, 12:37
Das kannst Du mal mit WM_CAP_SET_VIDEOFORMAT versuchen. WM_CAP_GET_VIDEOFORMAT ist ja im Tut schon benutzt worden. Das Funktionsprinzip von WM_CAP_SET_VIDEOFORMAT ist da in etwa das gleiche, nur jetzt eben in die andere Richtung: Bevor Du die Message abschickst, musst Du zuerst noch die entsprechenden Felder von "FCapBitmapInfo" laden. Und event. vorher auch noch das CaptureWindow=Panel1 entsprechend vergrößern.
  Mit Zitat antworten Zitat
Benutzerbild von Andi1985
Andi1985

Registriert seit: 11. Mai 2007
Ort: NRW
116 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Zugriff auf aktuelles Bild der Webcam

  Alt 30. Okt 2008, 12:50
mehr dazu kannst du auch hier finden: http://www.delphipraxis.net/internal...814&highlight=
  Mit Zitat antworten Zitat
tryanderror

Registriert seit: 23. Aug 2008
10 Beiträge
 
#7

Re: Zugriff auf aktuelles Bild der Webcam

  Alt 30. Okt 2008, 21:00
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?
  Mit Zitat antworten Zitat
r29d43

Registriert seit: 18. Jan 2007
287 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Zugriff auf aktuelles Bild der Webcam

  Alt 30. Okt 2008, 23:12
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz