Buscar..


Introducción

Ver también E / S para imágenes rasterizadas.

Cálculo de la textura GLCM

La textura de la matriz de coexistencia de nivel de grises (Haralick et al. 1973) es una potente función de imagen para el análisis de imágenes. El paquete glcm proporciona una función fácil de usar para calcular dichas características de RasterLayer para objetos RasterLayer en R.

library(glcm)
library(raster)

r <- raster("C:/Program Files/R/R-3.2.3/doc/html/logo.jpg")
plot(r)

introduzca la descripción de la imagen aquí

Cálculo de texturas GLCM en una dirección

rglcm <- glcm(r, 
              window = c(9,9), 
              shift = c(1,1), 
              statistics = c("mean", "variance", "homogeneity", "contrast", 
                             "dissimilarity", "entropy", "second_moment")
              )

plot(rglcm)

introduzca la descripción de la imagen aquí

Cálculo de la rotación invariante características de la textura

Las características texturales también pueden calcularse en las 4 direcciones (0 °, 45 °, 90 ° y 135 °) y luego combinarse en una textura invariante de rotación. La clave para esto es el parámetro de shift :

rglcm1 <- glcm(r, 
              window = c(9,9), 
              shift=list(c(0,1), c(1,1), c(1,0), c(1,-1)), 
              statistics = c("mean", "variance", "homogeneity", "contrast", 
                             "dissimilarity", "entropy", "second_moment")
              )

plot(rglcm1)

introduzca la descripción de la imagen aquí

Morfologias matematicas

El paquete mmand proporciona funciones para el cálculo de morfologías matemáticas para matrices n-dimensionales. Con una pequeña solución, también se pueden calcular para imágenes rasterizadas.

library(raster)
library(mmand)

r <- raster("C:/Program Files/R/R-3.2.3/doc/html/logo.jpg")
plot(r)

Al principio, un kernel (ventana móvil) debe configurarse con un tamaño (por ejemplo, 9x9) y un tipo de forma (por ejemplo, disc , box o diamond )

sk <- shapeKernel(c(9,9), type="disc")

Posteriormente, la capa ráster se debe convertir en una matriz que se utiliza como entrada para la función de erode() .

rArr <- as.array(r, transpose = TRUE)
rErode <- erode(rArr, sk)
rErode <- setValues(r, as.vector(aperm(rErode)))

Además de erode() , también las funciones morfológicas dilate() , opening() y closing() se pueden aplicar de esta manera.

plot(rErode)

Logo R erosionado



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow