Betrachten Sie diese beiden Graustufenbilder:
Das erste Bild zeigt ein sich schlängelndes Flussmuster. Das zweite Bild zeigt zufälliges Rauschen.
Ich suche ein statistisches Maß, anhand dessen ich feststellen kann, ob es wahrscheinlich ist, dass ein Bild ein Flussmuster zeigt.
Das Flussbild hat zwei Bereiche: Fluss = hoher Wert und überall sonst = niedriger Wert.
Das Ergebnis ist, dass das Histogramm bimodal ist:
Daher sollte ein Bild mit einem Flussmuster eine hohe Varianz aufweisen.
Das obige zufällige Bild sieht jedoch so aus:
River_var = 0.0269, Random_var = 0.0310
Andererseits weist das Zufallsbild eine geringe räumliche Kontinuität auf, während das Flussbild eine hohe räumliche Kontinuität aufweist, was im experimentellen Variogramm deutlich gezeigt wird:
Ebenso wie die Varianz das Histogramm in einer Zahl "zusammenfasst", suche ich nach einem Maß für die räumliche Kontinuität, das das experimentelle Variogramm "zusammenfasst".
Ich möchte, dass diese Maßnahme eine hohe Semivarianz bei kleinen Verzögerungen härter "bestraft" als bei großen Verzögerungen. Deshalb habe ich mir Folgendes ausgedacht:
Wenn ich nur lag = 1 bis 15 addiere, erhalte ich:
River_svar = 0.0228, Random_svar = 0.0488
Ich denke, dass ein Flussbild eine hohe Varianz haben sollte, aber eine geringe räumliche Varianz, deshalb führe ich ein Varianzverhältnis ein:
Das Ergebnis ist:
River_ratio = 1.1816, Random_ratio = 0.6337
Ich habe die Idee, dieses Verhältnis als Entscheidungskriterium dafür zu verwenden, ob ein Bild ein Flussbild ist oder nicht. hohes Verhältnis (zB> 1) = Fluss.
Irgendwelche Ideen, wie ich Dinge verbessern kann?
Vielen Dank im Voraus für alle Antworten!
EDIT: Nach dem Rat von Whuber und Gschneider sind hier die Morans I der beiden Bilder, die mit einer 15x15-Invers-Distanz-Gewichtsmatrix unter Verwendung der Matlab-Funktion von Felix Hebeler berechnet wurden :
Ich muss die Ergebnisse für jedes Bild in einer Zahl zusammenfassen. Laut Wikipedia: "Die Werte reichen von -1 (Anzeige der perfekten Streuung) bis +1 (perfekte Korrelation). Ein Nullwert gibt ein zufälliges räumliches Muster an." Wenn ich das Quadrat der Morans I für alle Pixel zusammenfasse, erhalte ich:
River_sumSqM = 654.9283, Random_sumSqM = 50.0785
Da hier ein großer Unterschied besteht, scheint mir Morans ein sehr gutes Maß für räumliche Kontinuität zu sein :-).
Und hier ist ein Histogramm dieses Wertes für 20 000 Permutationen des Flussbildes:
Offensichtlich ist der River_sumSqM-Wert (654,9283) unwahrscheinlich und das River-Bild ist daher nicht räumlich zufällig.
Antworten:
Ich dachte, dass eine Gaußsche Unschärfe als Tiefpassfilter wirkt, wobei die großräumige Struktur zurückbleibt und die Komponenten mit hoher Wellenzahl entfernt werden.
Sie können sich auch die Skala der Wavelets ansehen, die zur Erzeugung des Bildes erforderlich sind. Wenn alle Informationen in den kleinen Wavelets leben, dann ist es wahrscheinlich nicht der Fluss.
Sie könnten eine Art Autokorrelation einer Flusslinie mit sich selbst in Betracht ziehen. Wenn Sie also eine Reihe von Pixeln des Flusses aufgenommen haben, auch mit Rauschen, und die Kreuzkorrelationsfunktion mit der nächsten Reihe gefunden haben, können Sie sowohl die Position als auch den Wert des Peaks ermitteln. Dieser Wert wird viel höher sein als das, was Sie mit dem zufälligen Rauschen erhalten werden. Eine Pixelspalte erzeugt nur dann viel Signal, wenn Sie etwas aus der Region auswählen, in der sich der Fluss befindet.
http://en.wikipedia.org/wiki/Gaussian_blur
http://en.wikipedia.org/wiki/Cross-correlation
quelle
Dies ist ein bisschen spät, aber ich kann einem Vorschlag und einer Beobachtung nicht widerstehen.
Erstens glaube ich, dass ein "Bildverarbeitungs" -Ansatz besser geeignet ist als eine Histogramm / Variogramm-Analyse. Ich würde sagen, dass der "Glättungs" -Vorschlag von EngrStudent auf dem richtigen Weg ist, aber der "Unschärfeteil" ist kontraproduktiv. Was benötigt wird, ist ein kantenerhaltender Glatter wie ein bilateraler Filter oder ein Medianfilter . Diese Filter sind komplexer als Filter mit gleitendem Durchschnitt, da sie notwendigerweise nichtlinear sind .
Hier ist eine Demonstration dessen, was ich meine. Unten sehen Sie zwei Bilder, die sich Ihren beiden Szenarien annähern, sowie deren Histogramme. (Die Bilder sind jeweils 100 mal 100, mit normalisierten Intensitäten).
Für jedes dieser Bilder wende ich dann 15 Mal * einen 5 x 5-Medianfilter an, der die Muster glättet und dabei die Ränder beibehält . Die Ergebnisse sind unten gezeigt.
(* Wenn Sie einen größeren Filter verwenden, bleibt der scharfe Kontrast an den Rändern erhalten, die Position wird jedoch geglättet.)
Beachten Sie, dass das "Fluss" -Bild immer noch ein bimodales Histogramm aufweist, es jetzt jedoch in zwei Komponenten unterteilt ist *. Währenddessen weist das Bild mit dem "weißen Rauschen" immer noch ein einkomponentiges unimodales Histogramm auf. (* Einfache Schwellenwertanpassung, z. B. mit Otsus Methode , um eine Maske zu erstellen und die Segmentierung abzuschließen.)
Zweitens ist Ihr Bild sicherlich kein "Fluss"! Abgesehen von der Tatsache , dass es zu anisotrop ist (gestreckt in der Richtung „X“), in dem Maße, mäandernden Flüsse kann durch eine einfache Gleichung beschrieben werden, ist ihre Geometrie tatsächlich viel näher an einer Sinus- erzeugten Kurve als zu einer Sinuskurve (siehe zB hier oder hier ). Für niedrige Amplituden ist dies ungefähr eine Sinuskurve, aber für höhere Amplituden werden die Schleifen "umgedreht" (x ≠ f[ y] ), was in der Natur letztendlich zur Abschaltung führt .
(Entschuldigung ... meine Ausbildung zum Geomorphologen war ursprünglich)
quelle
Ein Vorschlag, der ein schneller Gewinn sein kann (oder überhaupt nicht funktioniert, aber leicht beseitigt werden kann) - haben Sie versucht, das Verhältnis von Mittelwert zu Varianz der Bildintensitätshistogramme zu untersuchen?
Nehmen Sie das zufällige Rauschbild auf. Angenommen, es wird durch zufällig emittierte Photonen (oder ähnliches) erzeugt, die auf eine Kamera treffen, und jedes Pixel wird gleich wahrscheinlich getroffen, und Sie haben die Rohdaten (dh die Werte werden nicht neu skaliert oder sie werden auf bekannte Weise neu skaliert, die Sie rückgängig machen können). sollte dann die Anzahl der Ablesungen in jedem Pixel poissonverteilt sein; Sie zählen die Anzahl der Ereignisse (Photonen, die auf ein Pixel treffen), die in einem festgelegten Zeitraum (Belichtungszeit) mehrmals (über alle Pixel) auftreten.
Für den Fall, dass es einen Fluss mit zwei unterschiedlichen Intensitätswerten gibt, haben Sie eine Mischung aus zwei Poissonverteilungen.
Eine sehr schnelle Möglichkeit, ein Bild zu testen, besteht darin, das Verhältnis von Mittelwert zu Varianz der Intensitäten zu untersuchen. Bei einer Poisson-Verteilung entspricht der Mittelwert ungefähr der Varianz. Bei einer Mischung aus zwei Poissonverteilungen ist die Varianz größer als der Mittelwert. Am Ende müssen Sie das Verhältnis der beiden Werte mit einem voreingestellten Schwellenwert vergleichen.
Es ist sehr grob. Aber wenn es funktioniert, können Sie die erforderlichen ausreichenden Statistiken mit nur einem Durchgang über jedes Pixel in Ihrem Bild berechnen :)
quelle