AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Videoframes auswerten

Videoframes auswerten

Ein Thema von juelin · begonnen am 24. Sep 2019 · letzter Beitrag vom 26. Sep 2019
Antwort Antwort
juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
107 Beiträge
 
Delphi XE5 Professional
 
#1

Videoframes auswerten

  Alt 24. Sep 2019, 12:48
Hallo zusammen,

erst nochmal recht herzlichen Dank für das schöne Wochenende Forentage in Mannheim.

Ich habe Windows 10 und Delphi XE5 und VideoLab.

Auf meinem zweiten Bildschirm zeichne ich ein grünes Rechteck und einen blauen Kreis
und den Kreismittelpunkt in rot.
Diesen Bildschirm filme ich mit einer USB-Kamera ab und will die Videoframes auswerten.
Dabei möchte ich die Koordinaten des Rechtecks, des Kreises und den Kreismittelpunkt ermitteln.

Dazu benutze ich folgende Komponeten von VideoLab:

VLDSCapture --> VLColorTwist --> VLGenericFilter --> VLImageDisplay2
--> VLImageDisplay1

Das Image werte ich im VLGenericFilter aus.
In den Bildern ist VLImageDisplay1 links und VLImageDisplay2 rechts oben
Die Einstellungen von VLColorTwist sind im Bild links unten.

Das grüne Rechteck zu erkennen geht noch ganz gut (bild1).
Aber des Kreis zu erkennen geht gar nicht (bild2).

Die Farben sind irgendwie nicht so wie sie sein sollten.
Ich werte das Image Pixel für Pixel aus und schaue welche RGB-Werte die Pixel haben.

bild1 und bild2 im Anhang.

Hat da jemand Erfahrung und kann mir einen Tipp geben?

Danke und Gruß
Jürgen
Miniaturansicht angehängter Grafiken
bild1.jpg   bild2.jpg  
Jürgen Linder
  Mit Zitat antworten Zitat
juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
107 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Videoframes auswerten

  Alt 24. Sep 2019, 19:34
bild2 nochmal anders
Miniaturansicht angehängter Grafiken
bild2.jpg  
Jürgen Linder
  Mit Zitat antworten Zitat
Benutzerbild von newIndy
newIndy

Registriert seit: 18. Dez 2018
Ort: Bad Dürkheim
22 Beiträge
 
Delphi XE3 Professional
 
#3

AW: Videoframes auswerten

  Alt 25. Sep 2019, 07:40
Die Forentage konnte ich leider nicht besuchen,
aber vielleicht kann ich dir hier einen Tipp geben.
Bei 'bild2 nochmal anders' ist der Hintergrund dunkler, das macht es etwas einfacher,
in der Realität sehe ich das aber nicht als Lösung.
Da die Pixelfarbwerte des Kamerabildes nicht mit den Zeichenfarben (grünes Rechteck, blauer Kreis, roter Kreismittelpunkt) übereinstimmen,
hilft in dem Fall vielleicht die Funktion 'GetNearestPaletteIndex' oder ähnliches, um die 'naheliegenste' Farbe zu finden.
Dann lassen sich auch die Formen und die Koordinaten erkennen.
Grün ist mit der höchsten Intensität eh am leichtesten zu erkennen, Blau daher am schwierigsten.
Fritz Kunkel
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.222 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Videoframes auswerten

  Alt 25. Sep 2019, 09:14
Ich habe auch mal versucht einen roten, hell leuchtenden Punkt auszuwerten, der eigentlich alles Andere überstrahlt.
Was wieder Erwarten nicht so simpel war.

Bei mir spielte die wechselnde Beleuchtung die Wesentliche Rolle, denn ein Bild mit hohem Weissanteil könnte man den roten Punkt trotz visuell sehr guter Sichtbarkeit nicht sicher detektieren.
Ist auch logisch, den Weiss enthält auch viel Rot, und dadurch wird der Unterschied immer kleiner.
Gerade bei kleinen, dünnen Objekten wird das dann schwierig das Objekt vom Rauschen zu unterschieden.
Geometrische Objekte, wie Linien haben denn Vorteil dan man gute Algorithmen, wieh Hough-Transformation benutzen kann, diese sind in der Regel aber auch nicht eindeutig.
Ich habe alle Möglichen mathematischen Tricks und Filter probiert, aber das Ergebnis war nicht optimal.

Wenn Du immer mit einem eher dunklen Hintergrund arbeiten kannst dann sollte das schon ein großer Vorteil sein, um die Objekte vom Hintergrund gut abzusetzen.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.963 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Videoframes auswerten

  Alt 25. Sep 2019, 09:32
Gedankenexperiment:
Man braucht eine Form von Normierung oder Fuzzyness um bei der Auswertung einfacher zu treffen oder eben großzügiger.

Normierungsmöglichkeit:
Farbreduktionsalgorithmen, klassisch 256 oder 16 Farben könnten weiterhelfen.
Das kann man ja ruhig erstmal zu Fuß machen (Kamerabilder) von Hand konvertieren. Dann kann man mit einem Batchtool streamlinen und wenn es vielversprechend ist, die Normierung während der Verarbeitung durchführen.
Je nach weiteren Aufgaben und darstellbarem Rechenaufwand vielleicht zuvor noch verkleinern...

Auch Helligkeit kann ab / ausgeglichen werden.
Wenn eine Kalibrierung nicht machbar ist, muss man vielleicht Histogramme erstellen und mit Mappingtabellen arbeiten.
Gruß, Jo
  Mit Zitat antworten Zitat
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
205 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Videoframes auswerten

  Alt 25. Sep 2019, 18:12
Hallo,

was ginge ist erstmal einen anderen Farbraum zu verwenden. HSV zum Beispiel.
Und dann Kanten detektion. Danach nahe beieinandern liegende Kantenteile zu einer Fläche verbinden.
"Unter" dieser Fläche via Histogramm die Häufigkeit von Farben prüfen. Ansonsten halt gleich die Formen der Flächen ermitteln.
Stefan
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Jetzt rächt sich die Natur und tötet uns.
  Mit Zitat antworten Zitat
juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
107 Beiträge
 
Delphi XE5 Professional
 
#7

AW: Videoframes auswerten

  Alt 25. Sep 2019, 18:32
danke für die Antworten,
Eure Tipps werde ich ausprobieren
und melde mich dann wieder.
Gruß
Jürgen
Jürgen Linder
  Mit Zitat antworten Zitat
juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
107 Beiträge
 
Delphi XE5 Professional
 
#8

AW: Videoframes auswerten

  Alt 26. Sep 2019, 10:25
so, nochmals vielen Dank für Eure Hilfe.
Hat mich aber nicht richtig weiter gebracht.
Ich habe es jetzt so gemacht:
Die Figur(Rechteck, Kreis, Mittelpunkt), die ich auswerten möchte habe ich grün gemacht.
Alle anderen Figuren in blau.
das funktioniert jetzt.
Nochmal Danke und Gruß
Jürgen
Miniaturansicht angehängter Grafiken
bild1.jpg  
Jürgen Linder
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 06:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf