15 votos

Medida estadística de si una imagen se compone de espacio conectado regiones separadas

Tenga en cuenta estas dos imágenes en escala de grises:

riverrandom

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

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

El río de la imagen tiene dos zonas: río = alto valor y en todas partes = valor bajo.

El resultado es que el histograma bimodal:

enter image description here

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

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

River_var = 0.0269, Random_var = 0.0310

En el otro lado de la imagen al azar tiene una baja continuidad espacial, mientras que el río de la imagen tiene una alta continuidad espacial, que se muestra claramente en el variograma experimental: enter image description here

De la misma manera que la varianza "resume" el histograma en una serie, Estoy buscando una medida de ordenación del territorio contiuity que "resume" el variograma experimental.

Quiero que esta medida para "castigar" a alta semivariance en pequeños lags más difícil de lo que en general los gal, así que he venido para arriba con:

$\ svar = \sum_{h=1}^n \gamma(h)/h^2 $

Si sólo se suman a partir de lag = 1 a 15 de recibir:

River_svar = 0.0228, Random_svar = 0.0488

Creo que un río de imagen debe tener una alta varianza, pero bajo la variación espacial de modo que presento la varianza de la relación:

$\ ratio = var/svar $

El resultado es:

River_ratio = 1.1816, Random_ratio = 0.6337

Mi idea es utilizar esta relación como un criterio de decisión de si una imagen es un río de imagen o no; alta relación (por ejemplo, > 1) = río.

Cualquier idea sobre cómo puedo mejorar las cosas?

Gracias de antemano por las respuestas!

EDIT: Siguiendo el consejo de whuber y Gschneider aquí están las Morans I de las dos imágenes se calculan con un 15x15 inversa de la distancia, el peso de la matriz utilizando Felix Hebeler la función de Matlab:

River_MRandom_M

Necesito para resumir los resultados en un solo número para cada imagen. De acuerdo a wikipedia: "el rango de Valores de -1 (lo que indica una dispersión perfecta) a +1 (correlación perfecta). Un valor cero indica un patrón espacial aleatorio." Si me suma el cuadrado de la 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 me parece una muy buena medida de la continuidad espacial :-).

Y aquí es un histograma de este valor de 20 000 permutaciones del río de imagen: histogram of permuations

Claramente el River_sumSqM valor (654.9283) es poco probable y el Río de la imagen es, por tanto, no espacialmente al azar.

2voto

Pat Puntos 1698

Una sugerencia que puede ser una forma rápida de ganar (o puede que no funcione en absoluto, pero puede ser fácilmente eliminado) - ¿has intentado buscar en la proporción de la media de la varianza de la intensidad de la imagen histogramas?

Tome el ruido aleatorio de la imagen. Asumiendo que es generado por azar emite fotones (o similar) de golpear a una cámara, y cada píxel tiene la misma probabilidad de ser afectados, y la que tiene el raw lecturas (es decir, los valores no se ajustaron, o se ajustaron en una forma conocida puede deshacer), entonces el número de lecturas en cada píxel debe ser de poisson distribuido; usted está contando el número de eventos (fotones golpear a un píxel) que se producen en un periodo determinado de tiempo (tiempo de exposición) varias veces (sobre todos los píxeles).

En el caso donde hay un río de dos diferentes valores de intensidad, tiene una mezcla de dos distribuciones de poisson.

Realmente una forma rápida de probar una imagen, a continuación, podría ser el de buscar la relación de la media de la varianza de las intensidades. Para una distribución de poisson la media es aproximadamente igual a la varianza. Para una mezcla de dos distribuciones de poisson, la varianza será más grande que la media. Necesitará para poner a prueba la relación de los dos en contra de algunos pre-umbral establecido.

Es muy crudo. Pero si funciona, usted será capaz de calcular la necesaria suficientes estadísticas con solo pasar por encima de cada píxel en la imagen :)

1voto

jws121295 Puntos 36

Estaba pensando que un desenfoque Gaussiano actúa como un filtro de paso bajo de salir de la estructura a gran escala detrás y la eliminación de la ola-número de componentes.

También se puede ver en la escala de ondas que se requiere para generar la imagen. Si toda la información está viviendo en la pequeña escala de wavelets, entonces es probable que no el río.

Usted podría considerar la posibilidad de algún tipo de auto-correlación de una línea del río con el mismo. Así que si usted tomó una fila de píxeles del río, incluso con el ruido, y encontrar la función de correlación cruzada con la siguiente fila, entonces usted podría encontrar la ubicación y el valor del pico. Este valor va a ser mucho mayor que lo que usted va a obtener con el ruido aleatorio. Una columna de píxeles es que no va a producir mucho de una señal, a menos que usted elija algo de la región donde el río.

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

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X