¿Realización de reducción de ruido de trama y suavizado de bordes?

22

Tengo una imagen raster como esta

Quiero eliminar el punto de ruido aislado y suavizar el borde (por ejemplo, los puntos individuales blancos, y quiero que los bordes de la entidad se vean suaves). ¿Cómo puedo hacer esto en ArcGIS o en R?

El tamaño de celda es 30 * 30.

    
pregunta Seen 14.11.2012 - 06:54

3 respuestas

15

Las operaciones morfológicas Expandir y < a href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Shrink/009z0000003m000000/"> Shrink se crearon para este tipo de procesamiento. Use ArcGIS (o GRASS o Mathematica ) porque la biblioteca "raster" de R es demasiado lenta.

A menudo ayuda experimentar un poco con los parámetros: tienes que decidir cuánta expansión y reducción se necesita para limpiar una imagen; y normalmente desea hacer lo menos posible, porque cada operación tiende a suavizar algunos de los detalles nítidos. Aquí hay una secuencia que funciona bien para eliminar gran parte del "ruido" aparente mientras se mantiene la mayoría de los detalles en las "entidades". "Expandir" y "contraer" son ambos con referencia a las celdas blancas , de modo que al expandirse las hace crecer hacia afuera y al reducirse las celdas negras se adentran en las regiones blancas.

Lacolumna"diferencia" utiliza el color para resaltar las diferencias entre la imagen inicial y final en cada paso: azul para negro que se volvió blanco y naranja para blanco que se volvió negro.

Si es necesario eliminar las piezas restantes más grandes, lo mejor sería hacerlo con RegionGroup para identificarlos, después de lo cual se pueden eliminar a través de la reclasificación. Esta fue una opción desde el principio, pero una pequeña limpieza inicial con Expand y Shrink reduce el trabajo y proporciona el suavizado deseado.

Por cierto, elegí hacer las ocho imágenes en esta ilustración con los comandos de Mathematica porque son muy simples, fáciles y rápidos de ejecutar:

i = Import["http://i.stack.imgur.com/umDg7.png"];
l = Dilation[k = Erosion[j = Dilation[i, 2], 3], 1];      (* This does all the work *)
delta = ColorCombine /@ {{i, j}, {j, k}, {k, l}, {i, l}}; (* Compares images *)

El flujo de trabajo en ArcGIS es el mismo pero la sintaxis será más larga. Si realmente desea utilizar R , cargue la biblioteca "raster" y explote focalFilter para crear funciones para expandir y reducir. Luego, espere aproximadamente un minuto para ejecutar las operaciones ...

    
respondido por el whuber 14.11.2012 - 15:22
12

Usando la extensión Spatial Analyst, puede usar algunos de los Generalización herramientas. Algunos de ellos realizan tareas similares, por lo que es posible que necesites jugar con algunos para que los resultados sean como los quieres. Pero me gustaría ver la filtro de mayoría de la herramienta y la herramienta Boundary Clean .

Aquí hay una página sobre los conceptos de este artículo. dos herramientas.

No estoy seguro de cómo realizar estas tareas en R, pero aquí hay una publicación sobre cómo realice un filtro mayoritario utilizando GRASS GIS.

    
respondido por el Fezter 14.11.2012 - 07:59
2

Esta es básicamente una variante de la respuesta de @ whuber y usa Euclidian Distance para expandir y reducir los límites del ráster para suavizar las esquinas nítidas del ráster que se exagera mediante el proceso de expansión-contracción que utiliza el número de celdas para crecer / invadir. Aunque la Distancia Euclidiana imita a Expandir, no es posible introducir un valor negativo para invadir o contraer. El truco consiste en desarrollar un proceso iterativo para tomar el negativo de la trama Euclidian Distance y cultivarlo. A continuación se muestran los pasos para las imágenes de muestra proporcionadas y las instantáneas para aclararlas.

  1. Reclasificar ráster para mantener solo 1s (celdas blancas)

  2. Aplique la distancia euclidiana para una distancia de dos celdas (60 metros en este caso) a la trama reclasificada

  3. Tome el negativo del ráster expandido usando Reclasificar (la las celdas con el valor obtendrán NODATA y NODATA se cambiará a 1) o los operadores Con e IsNull de Raster Calculator

  4. Aplique una vez más la Distancia Euclidiana a este ráster negativo con el misma distancia (60 m)

  5. Tome el negativo de esto siguiendo el mismo proceso descrito anteriormente

  6. Use Raster Calculator o Reclasificar para asignar celdas NODATA a 0 en este ráster para volver a los valores originales del ráster de muestra

Expande el Encogimiento frente a Distancia euclidiana

Nota: el color verde muestra las celdas procesadas (celdas blancas en las preguntas)

La ventaja de la Distancia Euclidiana es que toma la distancia adecuada de cada celda a través de las extensiones de hipotenusa que suavizan los bordes afilados. El número del parámetro de celda de las herramientas de expansión y reducción, por otro lado, procesa el mismo número de celdas para todas las direcciones, lo que produce bordes de tipo de borde, por lo tanto, generaliza los bordes / esquinas.

El problema principal, sin embargo, no elimina el ruido tan exitosamente como expandir / contraer y es un poco más largo que la respuesta.

    
respondido por el fatih_dur 20.01.2017 - 02:23

Lea otras preguntas en las etiquetas