Medida estadística de si una imagen consiste en regiones separadas conectadas espacialmente

14

Considere estas dos imágenes en escala de grises:

río aleatorio

La primera imagen muestra un patrón de río serpenteante. La segunda imagen muestra ruido aleatorio.

Estoy buscando una medida estadística que pueda usar para determinar si es probable que una imagen muestre un patrón de río.

La imagen del río tiene dos áreas: río = valor alto y en todas partes = valor bajo.

El resultado es que el histograma es bimodal:

ingrese la descripción de la imagen aquí

Por lo tanto, una imagen con un patrón de río debe tener una gran varianza.

Sin embargo, también lo hace la imagen aleatoria de arriba:

River_var = 0.0269, Random_var = 0.0310

Por otro lado, la imagen aleatoria tiene una baja continuidad espacial, mientras que la imagen del río tiene una alta continuidad espacial, que se muestra claramente en el variograma experimental: ingrese la descripción de la imagen aquí

De la misma manera que la varianza "resume" el histograma en un número, estoy buscando una medida de continuidad espacial que "resuma" el variograma experimental.

Quiero que esta medida "castigue" la semivariancia alta en los pequeños rezagos más duros que en los grandes rezagos, así que se me ocurrió:

 svunr=h=1norteγ(h)/ /h2

Si solo sumo de lag = 1 a 15 obtengo:

River_svar = 0.0228, Random_svar = 0.0488

Creo que una imagen de río debería tener una varianza alta, pero una varianza espacial baja, así que presento una relación de varianza:

 runtyoo=vunr/ /svunr

El resultado es:

River_ratio = 1.1816, Random_ratio = 0.6337

Mi idea es usar esta relación como criterio de decisión para si una imagen es una imagen de río o no; relación alta (p. ej.> 1) = río.

¿Alguna idea sobre cómo puedo mejorar las cosas?

Gracias de antemano por cualquier respuesta!

EDITAR: Siguiendo los consejos de Whuber y Gschneider, aquí están los Morans I de las dos imágenes calculadas con una matriz de peso de distancia inversa de 15x15 utilizando la función Matlab de Felix Hebeler :

River_M Random_M

Necesito resumir los resultados en un número para cada imagen. Según Wikipedia: "Los valores van desde -1 (que indica la dispersión perfecta) hasta +1 (correlación perfecta). Un valor cero indica un patrón espacial aleatorio". Si sumo el cuadrado de Morans I para todos los píxeles que obtengo:

River_sumSqM = 654.9283, Random_sumSqM = 50.0785 

Hay una gran diferencia aquí, así que Morans parece ser una muy buena medida de continuidad espacial :-).

Y aquí hay un histograma de este valor para 20 000 permutaciones de la imagen del río: histograma de permutaciones

Claramente, el valor River_sumSqM (654.9283) es poco probable y, por lo tanto, la imagen de River no es espacialmente aleatoria.

Andy
fuente
44
Interesante pregunta. Un pequeño consejo que viene a la mente de inmediato es enfocarse en la parte de corto alcance del variograma: esa es la parte crucial y hará el mejor trabajo para distinguir pares de imágenes como estas. (Las estadísticas estrechamente relacionadas son Moran's I y Geary's C. ) Sin embargo, es difícil dar consejos específicos, a menos que pueda caracterizar más claramente los tipos de imágenes que anticipa procesar.
whuber
2
+1 whuber, Moran's Parece un buen comienzo en este caso. Entonces, tal vez considere una prueba de permutación para ver cuán "extrema" es su imagen.
Gschneider
@Gschneider ¡La prueba de permutación es una buena idea, especialmente porque no es necesario realizar permutaciones! Es sencillo calcular la distribución del variograma (o la Moran's I o Geary C o lo que sea) bajo permutaciones de los valores en la imagen: hay tantos valores que aplica el CLT. (Por ejemplo, el variograma se verá como los puntos verdes; el doble de su altura constante es la variación de los valores de la imagen.) El problema se vuelve más desafiante cuando un patrón de "río" necesita ser distinguido de otros patrones como un "lago" o Los "ríos" pueden tener anchuras muy diferentes.
whuber
Lo siento, pero no estoy seguro de seguir: ¿me está diciendo que permute la imagen que se está probando píxel por píxel de forma aleatoria y luego compare el valor de Moran I de la imagen permutada con el de la imagen que se está probando?
Andy
Lo que tenía en mente era primero definir algún tipo de estructura de vecindario (probablemente simple) y calcular el I. de Moran. Luego, puede calcular K, digamos 200,000, posibles permutaciones de los píxeles, calculando el I de Moran para cada permutación. Una vez que tenga estos 200,000 Moran's I, vea dónde se encuentra su estadística observada. Pero, el método de Whuber suena más fácil :).
Gschneider

Respuestas:

1

Estaba pensando que un desenfoque gaussiano actúa como un filtro de paso bajo que deja atrás la estructura a gran escala y elimina los componentes de alto número de onda.

También puede observar la escala de wavelets necesarias para generar la imagen. Si toda la información está viviendo en las olas pequeñas, entonces probablemente no sea el río.

Puede considerar algún tipo de autocorrelación de una línea del río consigo misma. Entonces, si tomó una fila de píxeles del río, incluso con ruido, y encontró la función de correlación cruzada con la siguiente fila, entonces ambos podrían encontrar la ubicación y el valor del pico. Este valor será mucho más alto de lo que obtendrás con el ruido aleatorio. Una columna de píxeles no producirá mucha señal a menos que elija algo de la región donde está el río.

http://en.wikipedia.org/wiki/Gaussian_blur

http://en.wikipedia.org/wiki/Cross-correlation

EngrStudent - Restablece a Monica
fuente
1
¡Algunas ideas interesantes aquí! ¿Puedo convencerlo de que desarrolle esta respuesta aplicando uno o más de sus enfoques a las imágenes de muestra para (1) mostrar cómo funcionan sus métodos y (2) evaluar qué tan bien funcionan?
whuber
1
Es de mi tesis. (Ingeniería mecánica) Puse un desenfoque gaussiano en la posición de un péndulo no lineal, y luego usé el método de convolución para retroceder la posición de una imagen y compararla con la analítica. Lo probé con varios niveles de ruido. Mientras el ruido estuviera por debajo de un umbral relacionado con el tamaño del gaussiano, hubo una muy buena reconstrucción. link La Figura 11 fue el gráfico relevante para la reconstrucción. La figura 6 y la ecuación 2 indican la respuesta al ruido.
EngrStudent - Restablecer Monica
¡Gracias! Así que parece que estás en una excelente posición para desarrollar esta respuesta y demostrar cuán efectiva es realmente. :-)
whuber
Perdón por el doble comentario. Creo que es "inteligente" usar parte de un objeto como una pseudo "madre-wavelet" para sí mismo. Parece autorreferencial, pero también poético. Auto adjunto.
EngrStudent - Restablecer Monica
1

Esto es un poco tarde, pero no puedo resistir una sugerencia y una observación.

Primero, creo que un enfoque más de "procesamiento de imágenes" puede ser más adecuado que el análisis de histograma / variograma. Diría que la sugerencia de "suavizado" de EngrStudent está en el camino correcto, pero la parte de "desenfoque" es contraproducente. Lo que se requiere es un suavizador de preservación de bordes , como un filtro Bilateral o un filtro mediano . Estos son más sofisticados que los filtros de media móvil, ya que son necesariamente no lineales .

Aquí hay una demostración de lo que quiero decir. A continuación se muestran dos imágenes que se aproximan a sus dos escenarios, junto con sus histogramas. (Las imágenes son cada una de 100 por 100, con intensidades normalizadas).

Imágenes sin procesar imágenes en bruto

Para cada una de estas imágenes, aplico un filtro mediano de 5 por 5 15 veces *, que suaviza los patrones y conserva los bordes . Los resultados se muestran a continuación.

Imágenes suavizadas imágenes suavizadas

(* El uso de un filtro más grande aún mantendría el fuerte contraste en los bordes, pero suavizaría su posición).

Observe cómo la imagen del "río" todavía tiene un histograma bimodal, pero ahora está bien separada en 2 componentes *. Mientras tanto, la imagen de "ruido blanco" todavía tiene un histograma unimodal de un solo componente. (* Fácilmente trillado, por ejemplo, el método de Otsu , para hacer una máscara y finalizar la segmentación).


Segundo, ¡tu imagen ciertamente no es un "río"! Aparte del hecho de que es demasiado anisotrópico (estirado en la dirección "x"), en la medida en que los ríos serpenteantes pueden describirse mediante una ecuación simple, su geometría es en realidad mucho más cerca de un sine- generado curva que a un sine curva (por ejemplo, ver aquí o aquí ). Para amplitudes bajas, esta es aproximadamente una curva sinusoidal, pero para amplitudes más altas los bucles se "vuelcan"XF[y]), que en la naturaleza eventualmente conduce al corte .

(Perdón por la queja ... mi formación fue como geomorfólogo, originalmente)

GeoMatt22
fuente
En una nota al margen, generalmente es una buena idea ser muy cauteloso al aplicar los "métodos de variograma" a las imágenes naturales, que generalmente no son estacionarias. Esto se menciona en mi respuesta aquí .
GeoMatt22
0

Una sugerencia que puede ser una ganancia rápida (o puede que no funcione en absoluto, pero puede eliminarse fácilmente): ¿ha intentado observar la relación entre la media y la varianza de los histogramas de intensidad de imagen?

Toma la imagen de ruido aleatorio. Suponiendo que se genera por fotones emitidos aleatoriamente (o similares) que golpean una cámara, y cada píxel es igualmente probable que se golpee, y que tenga las lecturas sin procesar (es decir, los valores no se reescalan o se reescalan de una manera conocida que puede deshacer) , entonces el número de lecturas en cada píxel debe ser distribuido poisson; estás contando el número de eventos (fotones que golpean un píxel) que ocurren en un período de tiempo fijo (tiempo de exposición) varias veces (en todos los píxeles).

En el caso de que haya un río de dos valores de intensidad diferentes, tiene una mezcla de dos distribuciones de Poisson.

Una forma realmente rápida de probar una imagen podría ser observar la relación entre la media y la varianza de las intensidades. Para una distribución de Poisson, la media será aproximadamente igual a la varianza. Para una mezcla de dos distribuciones de Poisson, la varianza será mayor que la media. Terminará necesitando probar la relación de los dos contra un umbral preestablecido.

Es muy rudimentario. Pero si funciona, podrá calcular las estadísticas suficientes necesarias con solo un paso sobre cada píxel en su imagen :)

Palmadita
fuente