Mäanderförmige Flüsse in Bildern erkennen


14

Ich habe Flächen: z i ( x , y ) mit einem gemessenen Attribut (Variable) auf jeder Fläche: a i ( x , y ) . Die meisten Oberflächen haben eine zufällige Verteilung des Attributs über die Oberfläche, aber einige Oberflächen (die interessanten) zeigen ein mäanderförmiges Flussmuster:nzich(x,y)einich(x,y)

Bildbeschreibung hier eingeben

Ich brauche Ihre Hilfe, um ein Maß zu finden, das uns sagt, welche der Oberflächen am wahrscheinlichsten ein solches Muster haben.n

Es gibt viele mögliche Karten mit demselben Histogramm wie unten gezeigt. Daher muss die Maßnahme die räumliche Kontinuität "belohnen". Um dies zu veranschaulichen, habe ich ein zufälliges Bild mit fast demselben Histogramm wie das Flussbild erstellt: Bildbeschreibung hier eingeben

Bildstatistiken als Entropie sind daher möglicherweise nur ein Teil der Lösung.

Hier ist ein Beispiel für ein Bild ohne mäanderförmiges Flussmuster: Bildbeschreibung hier eingeben

Meine Bilder sind synthetisch (hergestellt in Matlab). Im wirklichen Leben kann das Bild ohne das Muster eine etwas größere räumliche Kontinuität in Form kleiner Flecken von ähnlichem Wert aufweisen.

Hier sind die Bilder in Graustufen:

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben


1
Können Sie tatsächliche Bilder posten (ohne Achse, Palette, Histogramm, damit wir verschiedene Algorithmen ausprobieren können?). Außerdem: Ist der "Mäanderfluss" tatsächlich ein Sinus oder kann er eine beliebige Form haben?
Niki Estner

1
Hallo Nikie. In meinem Beispiel (synthetische Daten aus Matlab) ist der Fluss ein Sinus. Im wirklichen Leben ist es "sinusartig"; manchmal geht es weit von der Mittellinie weg, manchmal nicht.
Andy

Antworten:


13

Eine sehr einfache Maßnahme wäre, jede Zeile im Bild mit der darüber liegenden Zeile zu vergleichen, um eine gewisse horizontale Verschiebung zu ermöglichen.

Ich habe diesen einfachen Algorithmus in Mathematica gehackt:

Mean[MapThread[
  Function[{line1, line2},
   Min[Table[Norm[line1 - RotateLeft[line2, shift]], {shift, -5, 5}]]
   ], {s[[2 ;;]], s[[;; -2]]}]]

Es benötigt einfach jedes Paar benachbarter Zeilen, dreht eine der Zeilen um -5,5 Pixel und benötigt den kleinsten euklidischen Abstand. Dies ergibt einen euklidischen Abstand für jedes Zeilenpaar. Ich nehme einfach den Mittelwert (aber abhängig von Ihren tatsächlichen Daten kann ein abgeschnittener Mittelwert oder Median robuster sein).

Dies sind die Ergebnisse, die ich für künstlich erzeugte Samples erhalte (Formel: Normalisieren (Zufallsrauschen * (1-Faktor) + Signal * Faktor))

Bildbeschreibung hier eingeben

Wenn ich das Ergebnis gegen die Signalstärke zeichne, scheint der Algorithmus die "mäandernde Flusssignalstärke" recht gut zu messen:

Bildbeschreibung hier eingeben

EDIT : Ich habe vergessen, die Eingangssamples zu normalisieren. Es wurde behoben, dass neue Ergebnisbilder hochgeladen wurden


Gute Antwort. Ich denke jedoch, dass Ihr Maß durch eine andere kontinuierliche Kurve, wie eine gerade Linie, getäuscht werden kann. Ich würde das ein wenig verbessern, indem ich den letzten Schritt so ändere, dass ein Sinus an die gefundenen (x, y) Punkte mit einer gewissen Amplitude, Phase und Frequenz angepasst wird. Die Amplitude kann dann als Maß für die "Flussstärke" dienen.
Andrey Rubshtein

4

Sie scheinen mit diesem Histogramm auf dem richtigen Weg zu sein. Wenn dies ein repräsentatives Bild aus Ihrer Stichprobe ist, zeigt das Histogramm, dass die Bilder, in denen das Mäandermuster vorhanden ist, nur durch die Prüfung erkannt werden können, ob sie Werte über einem bestimmten Schwellenwert enthalten.

Ansonsten können Sie versuchen, die Entropie zu erhalten der einzelnen Bilder zu ermitteln. Das gibt Ihnen eine Zahl pro Bild, die die Zufälligkeit charakterisiert. Danach können Sie ein Histogramm der Entropien Ihrer Bilder erhalten. Wenn Sie sicher sind, dass die Bilder eindeutig in "völlig zufällig" und "zufällig mit Mäander" (dh weniger zufällig) unterteilt sind, ist das Histogramm der Entropien bimodal. Der linke Modus entspricht Bildern mit geringerer Entropie und daher geringerer Zufälligkeit (mit größerer Wahrscheinlichkeit mit einem Mäandermuster) und umgekehrt für den rechten Modus.

(BTW MATLAB enthält eine relevante Funktion )

BEARBEITEN: Als Antwort auf die OP-Kommentare und das anschließende Hochladen weiterer Informationen zum Problem gibt es hier einen zusätzlichen Punkt zu dieser Antwort:

Die Entropie würde immer noch funktionieren, aber nicht der einfache speicherlose Fall, der durch Shannons Formel beschrieben wird (wobei angenommen wird, dass jede Stichprobe einer Zeitreihe von den vorherigen unabhängig ist).

Als einfachere Alternative können Sie versuchen, die Merkmale der Autokorrelation des Bildes zu untersuchen .


Hallo A_A. Ich denke, dass die Bildstatistik Teil der Lösung ist, aber man muss die Nachbarpixel irgendwie gewichten, um die räumliche Kontinuität zu belohnen (siehe das obige Attribut Karte des Zufalls).
Andy

Hallo, ich stimme zu und habe die Antwort erweitert.
A_A
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.