AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Linie in Live-Kamerabild zeichnen
Thema durchsuchen
Ansicht
Themen-Optionen

Linie in Live-Kamerabild zeichnen

Ein Thema von Vis · begonnen am 26. Feb 2014 · letzter Beitrag vom 27. Feb 2014
Antwort Antwort
Benutzerbild von Vis
Vis

Registriert seit: 26. Apr 2013
26 Beiträge
 
Delphi XE8 Professional
 
#1

Linie in Live-Kamerabild zeichnen

  Alt 26. Feb 2014, 18:40
Hallo zusammen,

eine Frage, und zwar habe ich eine Kamera, die ein Livebild anzeigen soll. Nun möchte ich gerne eine Linie einzeichnen.
Das Kamerabild kann ich mit einer Fremkomponente anzeigen lassen. Das Zeichnen mache ich mit folgender Funktion:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  hdc : Integer;
begin
  hdc := GetDC(uEyeCam1.Handle); //Handle der Kamera
  rectangle(hdc, 10,10,20,40);
  releaseDC(uEyeCam1.Handle, hdc);
end;
Leider wird das Kamerabild ja ständig erneuert, sodass meine Zeichnung ständig überschrieben wird.
Hat jemand eine Idee wie ich die Zeichnung vor das Kamerabild bekomme? oder sonst eine gute Anmerkung?

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Linie in Live-Kamerabild zeichnen

  Alt 26. Feb 2014, 19:02
Leider wird das Kamerabild ja ständig erneuert, sodass meine Zeichnung ständig überschrieben wird.
Dann zeichne doch immer nur nach dem "Erneuern"!
Such nach dem passenden Event! Ich kenn die Komponente leider nicht.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Linie in Live-Kamerabild zeichnen

  Alt 26. Feb 2014, 19:52
Oder zyklisch mit einen Timer, der schneller ist, als die Refresh-Rate der Kamera!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Linie in Live-Kamerabild zeichnen

  Alt 27. Feb 2014, 02:25
Ergibt natürlich einen schön blinkenden Text.

Es wurde natürlich das Wichtigste nicht verraten.
Was für eine "Kamera" ist das denn? Also über was wird die angesprochen?

Einige Schnittstellen nutzen intern Messages, bzw. einen Timer, und auf dessen Messages könnte man reagieren und direkt nach dessen Zeichenroutiene direkt neu drüber malen.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Vis
Vis

Registriert seit: 26. Apr 2013
26 Beiträge
 
Delphi XE8 Professional
 
#5

AW: Linie in Live-Kamerabild zeichnen

  Alt 27. Feb 2014, 13:37
Das mit dem Timer hatte ich auch ausprobiert. Leider hat man dann ein flimmerndes Bild.

Die Kamera ist eine uEye-Cam vom Hersteller IDS in Deutschland mit GigE Verbindung.
Wenn man sich in die Doku ein bißchen einließt, findet man dann auch Funktionen zum "Direct Rendering", die man mit der ActiveX-Komponente des Herstellers verwenden kann. Zuerst muss man das Direct 3D einschalten und dann kann man sog. Overlays über das Kamerabild zeichnen.
Sieht dann so aus:

Delphi-Quellcode:
    uEyeCam1.EnableDirect3D := True;
    resultInt := uEyeCam1.DRGetOverlayDC(hdc);
    rectangle(hdc, 10,10,200,100);
    resultInt := uEyeCam1.DRReleaseOverlayDC;
    resultInt := uEyeCam1.DRShowOverlay(1);
Wichtig ist das DirectX auf dem PC installiert ist.
Dann funktioniert das einwandfrei (nach 2h Beispielprogramme in C durchforsten

Danke für die Hinweise.
Grüße
Miniaturansicht angehängter Grafiken
unbenannt.png  
  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 07:27 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