Risposte:
Le operazioni morfologiche Expand e Shrink sono state create per questo tipo di elaborazione. Usa ArcGIS (o GRASS o Mathematica ) perché R
la libreria "raster" è troppo lenta.
Spesso aiuta a sperimentare un po 'con i parametri: devi decidere quanta espansione e riduzione sono necessarie per pulire un'immagine; e di solito vuoi fare il meno possibile, perché ogni operazione tende ad appianare alcuni dettagli nitidi. Ecco una sequenza che funziona bene per eliminare gran parte del "rumore" apparente mantenendo la maggior parte dei dettagli nelle "entità". "Espandi" e "restringimento" sono entrambi con riferimento ai globuli bianchi , in modo che l'espansione li induca a crescere verso l'esterno e la contrazione induca i globuli neri ad invadere le regioni bianche.
La colonna "differenza" usa il colore per evidenziare le differenze tra l'immagine iniziale e finale ad ogni passaggio: blu per il nero che è diventato bianco e arancione per il bianco che è diventato nero.
Se i pezzi rimanenti più grandi devono essere rimossi, è meglio farlo RegionGroup per identificarli, dopo di che possono essere cancellati attraverso la riclassificazione. All'inizio questa era un'opzione, ma una piccola pulizia iniziale con Expand
e Shrink
riduce il lavoro e fornisce il livellamento desiderato.
Per inciso, ho scelto di realizzare le otto immagini in questa illustrazione con comandi di Mathematica perché sono così semplici, facili e veloci da eseguire:
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 *)
Il flusso di lavoro in ArcGIS è lo stesso ma la sintassi sarà più lunga. Se vuoi davvero usarlo R
, carica la libreria "raster" e sfrutta focalFilter
per creare funzioni per l'espansione e la riduzione. Quindi attendere circa un minuto ciascuno per eseguire le operazioni ....
Utilizzando l'estensione Analista spaziale, è possibile utilizzare alcuni degli strumenti di generalizzazione . Alcuni di loro svolgono compiti simili, quindi potresti aver bisogno di giocare con alcuni per ottenere i risultati nel modo in cui li desideri. Ma darei uno sguardo allo strumento Filtro di maggioranza e allo strumento Pulizia contorni.
Ecco una pagina sui concetti di questi due strumenti.
Non sono sicuro di come eseguire queste attività in R, ma ecco un post su come eseguire un filtro di maggioranza utilizzando GRASS GIS.
Questa è sostanzialmente una variante della risposta di @ whuber e usa Euclidian Distance per espandere e ridurre i confini del raster per smussare gli angoli acuti del raster, che è esagerato dal processo di espansione-riduzione che utilizza il numero di celle per crescere / invadere. Sebbene Euclidian Distance imiti Espandi, non è possibile introdurre un valore negativo per invadere / ridurre. Il trucco è sviluppare un processo iterativo per prendere il negativo di Euclidian Distance raster e farlo crescere. Di seguito sono riportati i passaggi per le immagini di esempio fornite e le istantanee per chiarimenti.
Riclassifica raster per mantenere solo 1s (globuli bianchi)
Applicare la distanza euclidea per la distanza di due celle (in questo caso 60 metri) al quadro riclassificato
Prendi il negativo del raster espanso usando Ricodifica (le celle con il valore otterranno NODATA e NODATA saranno girate su 1) o gli operatori Con e IsNull del calcolatore raster
Applica ancora una volta Euclidian Distance a questo raster negativo con la stessa distanza (60 m)
Prendi il negativo di questo seguendo lo stesso procedimento sopra indicato
Usa Raster Calculator o Ricodifica per assegnare le celle NODATA a 0 in questo raster per tornare ai valori originali del raster di esempio
Espandi Riduci rispetto a Euclidian Distance
Nota: il verde mostra le celle elaborate (globuli bianchi nelle domande)
Il vantaggio di Euclidian Distance è che ci vuole il giusto distanza da ogni cellula attraverso le estensioni ipotenuse che levigano bordi altrimenti taglienti. Il numero di parametro di cella degli strumenti di espansione e riduzione, d'altra parte, elabora lo stesso numero di celle per tutte le direzioni, che produce bordi come bordi, quindi generalizza eccessivamente i bordi / angoli.
Il problema principale, tuttavia, non rimuove il rumore con la stessa efficacia di espansione / riduzione ed è un po 'più lungo della risposta.