Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnung?) (https://www.delphipraxis.net/15954-grafikroutine-gesucht-evt-mit-wahrscheinlichkeitsrechnung.html)

hitzi 7. Feb 2004 16:26


Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnung?)
 
Hallo,

irgendwie steh ich heute auf dem Schlauch. Ich habe die Farbdaten jedes Pixels von zwei verschiedenen Bildern.
Diese Bilder stehen in einer zeitlichen Folge von 15min.

Erstes Problem: Kennt jemand eine Möglichkeit die Zwischenbilder zu berechnen (eine Art Transition?) ?
Zweites Problem: Gibt es eine Möglichkeit die Entwicklung des Bildes aus den zwei Bilder zu berechnen?

Der Zeitunterschied zwischen den beiden Punkten ist bekannt. Es gibt nur 7 verschiedene Farben, welche die Intensität darstellen (0 nichts, 1 niedrige ... bis ... 6 hohe Intensität).

Delphi-Quellcode:
Zeitpunk A             Zeitpunkt B                 Zeitpunkt C
(bekannt)              (bekannt)               (irgendwie berechnen)
----+-----------------------+-----------------------------+-------------------->
Ich brauche irgendeinen Anhaltspunkt auf dem ich meine weitere Suche aufbauen kann.
Ich dachte ich kann das über die Wahrscheinlichkeitsrechnung lösen. Pixel für Pixel überprüfen und über den Intensitätsunterschied auf die Bewegung schlussfolgern. Aber das funktioniert bei mir nicht.

Gibt es einen anderen Lösungsansatz?
Für Quellen und Infos bin ich sehr dankbar.

Bye Hitzi

Luckie 7. Feb 2004 16:36

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Was heißt "funktioniert nicht"? Was hast du denn schon für Ansätze/Code?

hitzi 7. Feb 2004 17:19

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Hallo,

mein Ansatz ging in die Richtung, dass ich jedes Pixel vergleiche und auf Grund der Intensitätsänderung den möglichen Zustand des Pixels in der Zukunft darstelle. Nur bleibt da eben die Bewegung außen vor. Was ist mit den Pixeln, die noch keine Intensität/Farbe besitzen, aber mit großer Wahrscheinlichkeit in den nächsten Minuten eine Intensität bekommen - da ist noch keine Änderung vorhanden, auf Basis derer ich die Zukunft des Pixel berechnen kann.

Der erste Ansatz ist schon etwas älter und ging in die Richtung Vektorisierung. Aber hier fehlt mir leider das notwendige Wissen zur Vektorisierung. Ich wollte einfache Kreise um Pixelanhäufungen machen und nun Bild1 mit Bild2 vergleichen und so die Bewegung des Vektors errechnen.

Eventuell muss ich beide Ansätze implementieren. Mit einem Vektor die Bewegung ermitteln und über die Intensitätsänderung die zukünftige Intensität errechnen.

BYe Thomas

PS: Wenn ich von Bewegungen spreche, dann meine ich lineare Bewegungen.

hitzi 7. Feb 2004 17:22

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Nochwas ....

Code ist erstmal zweitrangig. Mir geht es nur um Lösungansätze. Die Umsetzung mach ich schon selber :)

MfG Hitzi

hboy 7. Feb 2004 17:40

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
hast du schon mal an Bei Google suchenregion growing gedacht ? du kannst damit objekte anhand ihrer gestalt und fläche erkennen und vergleichen. Daraus kann man dann die Bewegung ableiten.

2. Zwischenbilder ? du kannst die ineinander reinblenden oder morphen. Dazu bräuchtest du jedoch die Bewegung die du wohl rausfinden willst.

hboy 7. Feb 2004 17:44

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Floodfill ist z.B. region growing. mit einem eigenen Verfahren kann man auch toleranzbereiche einbauen

hitzi 7. Feb 2004 17:59

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Hallo,

die Floodfill/Region Growing Variante bringt mir leider nichts.

Nochmal zur Verdeutlichung:

(vereinfacht ----- 0 = nichts; 1 = Farbe/Intensität)

Delphi-Quellcode:
Bild 1:

0|0|1|0|0
-|-|-|-|-
0|1|1|0|0
-|-|-|-|-
0|0|1|1|0
-|-|-|-|-

Bild 2:

0|0|0|0|0
-|-|-|-|-
0|0|1|1|1
-|-|-|-|-
0|0|0|1|1
-|-|-|-|-
Daraus kann man mit bloßen Augen eine leichte Bewegung nach rechts, evt auch rechts/unten erkennen. Um eben dieses Erkennen geht es mir. Ich möchte die Richtung und die Distanz errechnen. Es muss nicht unbedingt pixelgenau sein, wäre aber schön :)

MfG Hitzi

hboy 7. Feb 2004 18:42

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
jaja schon klar aber mit region growing kannst du gleiche objekte auf den bildern ermitteln und aus deren positionen die Bewegung ableiten

hboy 7. Feb 2004 18:51

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Delphi-Quellcode:

Bild1          Bild2
00000000000000 00000000000000
00000000000000 00000000000000
00000##0000000 00000000000000
00000###000000 0000000##00000
00000####00000 0000000###0000
00000000000000 0000000####000
00000000000000 00000000000000
00000000000000 00000000000000

Regionen growen, rechte, linke, obere und untere Maxima festhalten

Bild1          Bild2
00000000000000 00000000000000
0000------0000 00000000000000
0000|..00|0000 000000------00
0000|.M10|0000 000000|..00|00
0000|....|0000 000000|.M20|00
0000------0000 000000|....|00
00000000000000 000000------00
00000000000000 00000000000000

M1 und M2 sind die mittelpunkte der Rechtecke

Der Verschiebungsvektor ist nun [(M2.X-M1.X) (M2.Y-M1.Y)]
Edit:
Anmerkung: ich glaube pixelweise kann man eine Bewegung nicht feststellen. man könnte die Bilder jedoch von einander subtrahieren. dann entsteht vor und hinter dem bewegten Bildausschnitt eine differenz, im umliegenden bereich nicht. der Winkel der bewegung lässt sich aus der Lage der beiden Differenzbereiche ermitteln

hitzi 7. Feb 2004 19:09

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Haloo hboy,

den von dir angesprochen Algorithmus könnte ich als eine Art Vektorisierung mißbrauchen :)

Nur braucht man dazu einen Ausgangspunk (Saatpunkt), da muss ich mich noch schlau machen wie ich den ermittel.

Meiner Meinung nach ein gutes Dokument zum Einstieg in diese Materie:
http://www.ient.rwth-aachen.de/team/...ristian.SA.pdf

Ich laß meine Frage mal noch als offene Frage markiert, da ich jetzt noch nicht abschätzen kann, ob es mir wirklich weiterhilft.

Weitere Vorschläge zur Problemlösung sind gern von mir gesehen :-D

Bis dahin
Thomas

hitzi 7. Feb 2004 19:14

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Nochmal hallo :)

hboy hab deinen Post erst gelesen, als ich meinen abgeschickt habe. Genau die von dir angesprochene Variante probier ich gerade aus. Danke nochmal.

Ich sag bescheid, wenn's funktioniert :)

BYe Hitzi

hitzi 7. Feb 2004 19:18

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Ich sollte erst richtig nachdenken und dann posten. :?
Aber so kann ich wenigsten auch mal meine Postingzahl erhöhen :mrgreen:

hboy: Was aber, wenn sich die Form verändert? Die grobe Form bleibt schon zum größten Teil erhalten, aber so eine Pixelanhäufung kann sich auch auflösen oder vergrößern. Kann man da auch noch mit Region Growing arbeiten?

MfG Hitzi

hboy 7. Feb 2004 19:40

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
wie gesagt es war nur ein denkansatz. Ich gehe davon aus das das Bild aus mehreren in bewegung befindlichen Bereichen besteht. Dies macht ,vorausgesetzt die Bewegung erfolgt in die gleiche Richtung, es einfacher, die richtungen und Beträge der verschiebungen zu mitteln und Werte ausserhalb eines Toleranzbereichs auszuschließen.
Ich habe schon region growing zum Entfernen von staub und kratzern in eingescanntem text, also graustufen, implementiert.
Als weiteren Vorschag würde ich noch sagen das du zuerst alle! Regionen(seed(x,y), fläche) auflistest und irrelevante Objekte aussortierst.
Mal noch ne andere Frage nur aus interesse : warum machst du das? willst du einen Videokompressor schreiben oder feststellen ob sich zwischen 2 snapshots einer Webcam was bewegt hat oder so ? find ich voll cool.

greeds

hboy

hboy 7. Feb 2004 19:43

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
An alle anderen: habt ihr weitere Vorschläge? immer her damit. Und ruhig auch was gewagteres :roll: :lol:

hitzi 8. Feb 2004 17:59

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Hallo,

konnte leider erst jetzt antworten, war den ganzen Tag unterwegs gewesen. :stupid:
Nee, so was Aufregendes ist vorerst nicht geplant. Vielleicht find ich bei der Umsetzung noch weitere Einsatzmöglichkeiten, aber zur Zeit soll das ganze in einem meteorologischen Projekt eingesetzt werden.
Genauer gesagt soll das oben Erklärte zur Erkennung der Bewegungsrichtung und -geschwindigkeit von Niederschlagsgebieten aus Radarkarten eingesetzt werden. Ziel dieses Modules soll die frühzeitige Erkennung von Niederschlag für ein vorher definiertes Gebiet sein. Bei einer solchen Erkennung soll dann z.B eine SMS mit der entsprechenden Warnung versendet werden.

MfG Hitzi

hboy 9. Feb 2004 15:37

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
das ist doch spektakulär! Wirklich nicht schlecht. Wie kommst du voran ?

hitzi 9. Feb 2004 16:05

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Hallo hboy,

danke der Nachfrage. Die Woche über sieht's bei mir schlecht für das Projekt aus. Arbeite fast den ganzen Tag mit Delphi. Wenn ich dann Feierabend habe, ist die Lust am Rechner zu arbeiten ziemlich oft nicht vorhanden. Deshalb ist diese Projekt ein "WE Projekt" 8)
Ich halte dich auf den laufenden.


Byebye Hitzi

hitzi 12. Feb 2004 16:22

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Hallo,

hboy du ist schuld, dass ich mich jetzt auch noch nach Feierabend vor den Rechner setze :stupid:

Naja, jedenfalls hab ich nun die Regionen + ein Rechteck (Min/Max der Region).
Bloß irgendwie will bei mir der Groschen nicht fallen, wie ich denn nun erkenne, das Rechteck/Region 2 im Bild 2 das ursprüngliche Rechteck 4 aus Bild 1 ist? Von den Rechtecken können sich Breite und Höhe und die Position im Bild ändern. Form und Position kann also im Bild 2 eine ganz andere als im Bild 1 sein. OK, da es sich um Niederschlaggebiete handelt, wird sich innerhalb von 15min nicht ganz gravierend was ändern, aber ein Änderung ist vorhanden.

Hat irgendjemand eine Idee, wie ich erkenne, dass Rechteck 3/Bild 1 = Rechteck 5/Bild 2 ist?

BYe Thomas

dizzy 13. Feb 2004 03:27

Re: Grafikroutine gesucht(evt. mit Wahrscheinlichkeitsrechnu
 
Tja, und genau DAS ist die Kunst dabei, die auch die großen Firmen versuchen zu beherrschen :roll:

Es gibt (bzw. gab leider) mal ein kostenloses Video-Tracking-Tool "ICARUS". Das wurde glaub ich von der University of Manchaster entwickelt, nur mittleiweile (vor 1-2 Jahren!?) an eine Firma verkauft. Das Programm ist leider auch in älteren Versionen nicht mehr zu bekommen :(
Dort wurde versucht automatisch markante Punkte im Bild zu finden, und diese durch die Bewegung hindurch zu "tracken". Das gelang schon ausserordentlich gut! Es wurde sogar erkannt, wenn ein Punkt das Bild verliess. Ziel des ganzen war es eine rudimentäre 3D-Nachbildung einer realen gefilmten Szene zu erstellen, und zusätzlich noch die Kamerabewegung zu extrahieren. SEHR heftiges Zeug!!! Da haben die Jungens schon mehrere Jahre dran gebastelt, aber eine "wirkliche" Mustererkennung gab es trotz dem nicht. Ein Stuhl wurde nicht 20 Bilder später als dieses Muster wieder erkannt. Nur blieb die Punktanordnung in dieser Region ETWA gleich.
Bei einfachen geometrischen Figuren hätte das ICARUS-System allerdings wohl recht schnell versagt, da es jeden Punkt in den Kontext des restlichen Bildes gesetzt, und anhand der umliegenden Bild-Infos lokalisiert. Der "Nahbereich" (einstellbar ca. 10 Pixel) um den Tracking-Punkt wurde als Hauptkriterium verwendet. Da aber bei einfachen s/w-Bildern o.ä. die einzelnen Bereicht zu gleich aussehen, wäre dieser Ansatz hinüber. An einer glatten Schwarz/Weiss-Kante rutschen die Trackingpunkte nur auf und ab, und finden wenn nur an den Ecken Halt...

Ihr habt euch da etwas ganz ganz ganz kompliziertes herausgesucht! Wenn man sowas auch noch für allgemeine Anwendung machen will, kommt ihr um statistische Systeme und quasi-intelligente tolerante Algorithmen nicht rum. Wenn bekannt ist, dass nur 4-Ecke und Kreise auftauchen, wirds wohl etwas gemütlicher. Aber noch ganz lange nicht einfach!

Wollte das nur zu bedenken geben. Lasst euch nicht abhalten, (auf keinen Fall meine Absicht), aber seid euch im Klaren darüber, dass ihr nicht die einzigen hellen Köpfe seid die sich darüber die Birne zermatern :zwinker:

Toi Toi Toi! :thuimb:


gruss,
dizzy


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