Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   WebCam-Bild in Array (https://www.delphipraxis.net/55036-webcam-bild-array.html)

Freiberger 15. Okt 2005 14:43


WebCam-Bild in Array
 
Hy,

ich habe mir einen Roboter gebaut, den ich über WEBCAMs steuern will.

Ich will über nen Timer alle X Sekunden das Bild aus ner Webcam in ein Array laden,
damit ich es bearbeiten kann. (z.B. Randerkennung, Objekterkennung usw.)

Ich habe einen Code gefunden, wo ich das Live-Bild auf nem Panel anzeigen kann, aber das
bringt mich leider nicht weiter...

Kann mir jemand helfen ?
Habe schon viele Foren durchsucht, aber nix richtiges gefunden.

Eichhoernchen 15. Okt 2005 14:54

Re: WebCam-Bild in Array
 
was für nen array haste denn?


Du kannst es ja einfach auf ein Panel zeichnen und es von dem Panel runterkopieren mit GETDC

Delphi-Quellcode:
var can : TCanvas;
    bitmap : array of TBitmap;
    index : integer;
..
Begin
... //Bild auf Panel

can := TCanvas.create;

can.Handle := GetDC(Panel1.Handle);

setlength(bitmap, high(bitmap)+1);

index := high(bitmap)-1;

bitmap[index] := TBitmap.create;

bitmap[index].pixelformat := pf32bit;

bitmap[index].Width := //beite;

bitmap[index].Height := //höhe;

bitmap[index].Canvas.CopyRect( Rect( 0 ,0, bitmap[index].Width, bitmap[index].Height), can , Rect(0, 0, Panel1.Width, Panel1.Height));

can.free;

end;

Ist ungetestet aber ich denke das sollte gehen!

Ultimator 15. Okt 2005 15:01

Re: WebCam-Bild in Array
 
Zitat:

Zitat von Eichhoernchen
Du kannst es ja einfach auf ein Panel zeichnen und es von dem Panel runterkopieren mit GETDC

Wenn er allerdings ein anderes Fenster teilweise über das Panel legt, hat er diesen Fensterausschnitt mit im Bild.

Ich würde eher Code von hier verwenden ;)

Eichhoernchen 15. Okt 2005 15:15

Re: WebCam-Bild in Array
 
das ist natürlich schöner!

Wusste nicht davon!

Freiberger 15. Okt 2005 15:51

Re: WebCam-Bild in Array
 
Danke, ich versuche es mal.
Aber ich brauche eigentlich das Panel mir dem Originalbild nicht.

Ich will ja das berechnete Bild (Kantenerkennung...) auf dem ganzen Bildschirm anzeigen.

Kann ich denn die Daten nicht direkt aus der CAM laden ? :wall:
Es ist doch bestimmt sehr zeitintensiv, wenn ich das Bild in nem Panel anzeige, dann kopiere, bearbeite und wieder anzeige...


Ich will ja sofort wenn die Berechnung fertig ist, mein neues Bild anzeigen
und dann die Berechnung mit nem neuen Bild starten.

loetmann 12. Nov 2005 18:23

Re: WebCam-Bild in Array
 
Hallo,

Zitat:

Zitat von Freiberger
Kann ich denn die Daten nicht direkt aus der CAM laden ?

ja, guck mal nach capSetCallbackOnFrame (WM_CAP_SET_CALLBACK_FRAME) bei msn. ich habe lange danach gesucht und so halbwegs funktioniert das ganze auch. Andere Grabfunktionen gehen z.B. über die Zwischenablage was aber nicht so elegant ist wenn mal ein anderes Programm die zwischenablage überschreibt (CapClipboard[capGrabFrame/capEditCopy]/WM_CAP_GRAB_FRAME).

Für Robotik gibt es ein Forum (www.roboternetz.de) wo man über eine "CMUcam2" spricht die einige Algorythmen integriert hat und auch auslebar ist.

Ein Gruß
LM

Phantom1 12. Nov 2005 19:47

Re: WebCam-Bild in Array
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von loetmann
ja, guck mal nach capSetCallbackOnFrame (WM_CAP_SET_CALLBACK_FRAME) bei msn. ich habe lange danach gesucht und so halbwegs funktioniert das ganze auch.

Ein Code der WM_CAP_SET_CALLBACK_FRAME benutzt habe ich ihm schon vor einiger Zeit geschickt per PN. Ich kann den Code ja mal hier anhängen.

Achja: Man muss dafür die Graphics32 komponenten installiert haben!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 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-2025 by Thomas Breitkreuz