AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Videoanalyse (ähnlich wie Lichtschranke)
Thema durchsuchen
Ansicht
Themen-Optionen

Videoanalyse (ähnlich wie Lichtschranke)

Ein Thema von Ilmug3 · begonnen am 19. Dez 2015 · letzter Beitrag vom 4. Jan 2016
Antwort Antwort
Seite 1 von 3  1 23      
Ilmug3

Registriert seit: 19. Apr 2015
7 Beiträge
 
#1

Videoanalyse (ähnlich wie Lichtschranke)

  Alt 19. Dez 2015, 14:58
Ich überlege mir, wie ich die Geschwindigkeit von Fahrzeugen auf einem Video analysieren kann.
Das Bild einer fest installierten Webcam beobachtet eine Ausfallstraße.
Ändert sich am Videobild ein definierter Bereich, startet ein Sekundenzähler, bis sich ein anderer Bereich des Videobildes ändert. Anhand der Zeit (im Sekundenbereich) und der Strecke, die zwischen den Bildpunkten in der Natur liegt, sollte sich die Geschwindigkeit ermitteln lassen. (nur annähern, wenn wenige Autos fahren, nicht gerichtsverwertbar, bei guter Beleuchtung, wenn das Auto nicht asphaltgrau ist, .....)

Was mir fehlt, ist eine Idee, wie ich im Millisekundenbereich einzelne oder wenige Pixel des Videobildes auf Helligkeits- /Farbschwankungen untersuchen kann.

Hat jemand einen Ansatz?
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Videoanalyse (ähnlich wie Lichtschranke)

  Alt 19. Dez 2015, 15:17
Die grundlegendste Antwort wäre hier wohl TBitmap.ScanLine . Das liefert dir einen Zeiger auf eine Bildzeile, wovon jeder Block (abhängig vom Pixelformat) die RGB- bzw. RGBA-Werte enthält.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Videoanalyse (ähnlich wie Lichtschranke)

  Alt 19. Dez 2015, 17:33
Wenn die Straße gerade genug (waagerecht) auf dem Bild ausgerichtet ist, würde es ja sogar schon reichen eine einzelne Zeile zu betrachten. Das mittels Scanline ist problemlos im Millisekundenbereich abgefrühstückt.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#4

AW: Videoanalyse (ähnlich wie Lichtschranke)

  Alt 19. Dez 2015, 20:40
Wenn die Bildfrequenz 50Hz ist, muss man nur alle 20 msec eine Analyse durchführen.

Geändert von hathor (19. Dez 2015 um 22:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch
Online

Registriert seit: 11. Aug 2012
Ort: Essen
1.623 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Videoanalyse (ähnlich wie Lichtschranke)

  Alt 19. Dez 2015, 21:04
Wenn die Bildfrequenz 50Hz ist, muss man nur alle 20 sec eine Analyse durchführen.
????

50 Hz sind 50 Bilder pro Sekunde, man muss also all 20 Millisekunden eine Bildanalyse durchfuehren.
Thomas Mueller
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#6

AW: Videoanalyse (ähnlich wie Lichtschranke)

  Alt 19. Dez 2015, 22:24
Da war ein m verlorengegangen.
Übrigens:
Bei Dir ist ein e verlorengegangen.
  Mit Zitat antworten Zitat
Ilmug3

Registriert seit: 19. Apr 2015
7 Beiträge
 
#7

AW: Videoanalyse (ähnlich wie Lichtschranke)

  Alt 19. Dez 2015, 23:29
Danke für den Hinweis.
Erste Versuche habe ich jetzt schon gemacht.
Bildvergleich mit Scanline gibt gute Ergebnisse. Danke für den Tipp.
Meine Überlegung war weiterhin, einen kleinen Ausschnitt (30*30 Pixel) vom Desktop in die Anwendung zu kopieren
und dort mit dem hinterlegten Bild des Ausschnitts ohne Auto zu vergleichen.

Ich habe mich aus Faulheit für den Desktop entschieden. Dann muss ich mich nicht mit irgend welchen Videosstreams in Delphi rumschlagen,
sondern lasse den Stream im Browser anzeigen und kopiere es von dort in die Delphianwendung. Verschieben, darf man dann das Browserfenster natürlich nicht mehr.

Bedient habe ich mich bei diesen Codezeilen
_______________________________________
function GetScreenShot: TBitmap;
var
Desktop: HDC;
begin
Result := TBitmap.Create;
Desktop := GetDC(0);
try
try
Result.PixelFormat := pf32bit;
Result.Width := Screen.Width;
Result.Height := Screen.Height;
BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, Desktop, 0, 0, SRCCOPY);
Result.Modified := True;
finally
ReleaseDC(0, Desktop);
end;
except
Result.Free;
Result := nil;
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.Bitmap := GetScreenShot;
end;
_______________________________

Leider scheint die Prozedur denn Speicher nicht ordentlich aufzuräumen,
denn nach einigen Sekunden (Scannrate 100ms) gehen mir die Ressourcen aus.
Die Probleme tauchen immer dort auf, wo man sie nicht vermutet
Ich muss vielleicht noch etwas mit FreeAndNil arbeiten.
Das werde ich morgen testen.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#9

AW: Videoanalyse (ähnlich wie Lichtschranke)

  Alt 20. Dez 2015, 05:26
Leider scheint die Prozedur denn Speicher nicht ordentlich aufzuräumen,
denn nach einigen Sekunden (Scannrate 100ms) gehen mir die Ressourcen aus.
Das ist einer der fiesen Fälle, wo eine Funktion eine Instanz als Result zurück gibt. Es gibt hier in der DP ein paar Diskussionen dazu, die sich damit befassen wer denn in so einem Fall nun für das Aufräumen dieser Instanz zuständig ist. Um den Code von GetScreenShot() nicht anfassen zu müssen, schlage ich folgende Lösung vor:

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  bmp: TBitmap;
begin
  bmp := GetScreenShot;
  if Assigned(bmp) then
  begin
    try
      Image1.Picture.Bitmap.Assign(bmp);
    finally
      bmp.Free;
    end;
  end;
end;
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Ilmug3

Registriert seit: 19. Apr 2015
7 Beiträge
 
#10

AW: Videoanalyse (ähnlich wie Lichtschranke)

  Alt 20. Dez 2015, 09:44
Danke Medium.
Du hast meinen Sonntag gerettet.
Das Aufräumen mit deinen Code funktioniert hervorragend.
Der Rest ist jetzt noch die übliche Fleißarbeit (hoffe und befürchte ich).

Beim nächsten unvorhergesehenen Problem melde ich mich
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      

 

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 16:20 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