Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Webcambild- Bei Veränderung reagieren (https://www.delphipraxis.net/119661-webcambild-bei-veraenderung-reagieren.html)

Larsi 29. Aug 2008 11:07


Webcambild- Bei Veränderung reagieren
 
Hi,
ich habe mit dem Code aus der Codelib in einem Panel das LiveBild meiner Webcam. Meine Frage ist jetzt nicht nur wie ich auf die Veränderung reagieren kann sondern es soll auch der Bereich wo die stärkste Veränderung ist makiert werden. (Zum Beispiel mit nem Punkt oder so) Also wenn ich jetzt vor der Webcam stehe und mein Arm bewege (ganz ganz schnell^^) dann soll irgendwie dort wo sich der Arm bewegt hat ein Punkt oder sowas gezeichnet werden. Das Problem ist das sich der Rest meines Körpers ja auch im Idealfall immer ein bisschen bewegt und das ist das Problem. Man müsste irgendwie eine Sensibelitätsstufe einbauen sodas nur auf größere bzw. schnellere Bewegungen reagiert wird. Ich hoffe Ihr verseht meine Frage und könnt mir helfen.


MFG Lars Wiltfang

Sherlock 29. Aug 2008 11:15

Re: Webcambild- Bei Veränderung reagieren
 
Im Prinzip musst Du die Einzelbilder auswerten können.

Wenn Du an die Einzelbilder rankommst, musst Du einfach nur zwei aufeinanderfolgende Bilder voneinander subtrahieren. Wenn sich nichts ändert, dann kommt ein leeres Bild bei raus. Wenn sich etwas ändert, dann hast Du an den Stellen eben noch was im Bild stehen.

Das ist die Theorie, gemacht hab ichs noch nie ;)

Sherlock

Larsi 29. Aug 2008 11:20

Re: Webcambild- Bei Veränderung reagieren
 
Ich glaube das dauert einfach zu lange mit den ganzen Bildern oder?

Medium 29. Aug 2008 11:27

Re: Webcambild- Bei Veränderung reagieren
 
Wenn es nicht gerade Vollbilder einer 4 Megapixel Kamera sind, und du dich von dieser gräßlichen TCanvas.Pixels Property fern hälst prinzipiell erstmal nö. Und durch die Subtraktion hast du doch schon mal implizit ein Maß darüber wie sehr sich einzelne Bereiche geändert haben: Kleinere Differenzen, weniger Änderung.

Larsi 29. Aug 2008 11:28

Re: Webcambild- Bei Veränderung reagieren
 
Ich habe meine Idee jetzt verändert. In der Codelib befindet sich neben dem ganz normalen Anzeigen der Webcam ja auch ein Code der Alarm schlägt wenn man ein rotes Objekt in die obere linke Ecke hält. http://www.delphipraxis.net/internal...ghlight=webcam

Wie muss ich das umändern dass es egal ist wo sich dieses rote Objekt befindet und mir dann die Position genannt wird wo sich der rote Punkt befindet?
Ich glaube dies mit dem Erkennen in der oberen linken Ecke wird hier gemacht:
Delphi-Quellcode:
  // + Code zur Untersuchung der Bildes, z.B.: Wenn ein bestimmter Pixel X/Y
    // (=0/0) des Pictures rot ist, dann schlage Alarm... (oder so)
    DWord(AColor) := FBitmap.Canvas.Pixels[0,0];
    if (AColor[1] >= AColor[2]+50) and (AColor[1] >= AColor[3]+50) then beep;

Blup 29. Aug 2008 14:57

Re: Webcambild- Bei Veränderung reagieren
 
Ausgangssituation Bitmap1 und Bitmap2 sind gleich groß und enthalten die Ausgangsbilder.
ResultBitmap ist von gleicher Größe (Width und Height) und soll das Differenzbild aufnehmen.
Delphi-Quellcode:
{1.Bitmap in das Ergebnisbild kopieren}
ResultBitmap.Canvas.CopyMode := cmScrCopy;
ResultBitmap.Canvas.CopyRect(
  ResultBitmap.Canvas.ClipRect,
  Bitmap1.Canvas,
  Bitmap1.Canvas.ClipRect);
{2.Bitmap mit dem Ergebnisbild XOR verknüpfen}
ResultBitmap.Canvas.CopyMode := cmSrcInvert;
ResultBitmap.Canvas.CopyRect(
  ResultBitmap.Canvas.ClipRect,
  Bitmap2.Canvas,
  Bitmap2.Canvas.ClipRect);
{Normalzustand}
ResultBitmap.Canvas.CopyMode := cmScrCopy;
Im Ergebnisbild sind jetzt alle die Punkte nicht Schwarz, die in den beiden Ausgangsbildern voneinander abweichen.

Mackhack 29. Aug 2008 15:01

Re: Webcambild- Bei Veränderung reagieren
 
Hier findest du ein Top Beispiel mit 4 oder 5 verschiedenen approaches wie man das ganze realisieren kann!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:33 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