Recherche…


Introduction

Voir aussi E / S pour les images raster

Calcul de la texture GLCM

La texture de la matrice de cooccurrence de niveaux de gris (Haralick et al. 1973) est une caractéristique d'image puissante pour l'analyse d'images. Le paquet glcm fournit une fonction facile à utiliser pour calculer de telles caractéristiques RasterLayer pour les objets RasterLayer dans R.

library(glcm)
library(raster)

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

entrer la description de l'image ici

Calcul des textures GLCM dans une direction

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

plot(rglcm)

entrer la description de l'image ici

Fonctions de texture rotation-invariant de calcul

Les caractéristiques de texture peuvent également être calculées dans les 4 directions (0 °, 45 °, 90 ° et 135 °), puis combinées en une texture invariante par rotation. La clé pour cela est le paramètre 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)

entrer la description de l'image ici

Morphologies Mathématiques

Le paquet mmand fournit des fonctions pour le calcul des morphologies mathématiques pour les tableaux à n dimensions. Avec une petite solution de contournement, ceux-ci peuvent également être calculés pour les images raster.

library(raster)
library(mmand)

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

Au départ, un noyau (fenêtre en mouvement) doit être défini avec une taille (par exemple 9x9) et un type de forme (par exemple, un disc , une box ou un diamond ).

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

Ensuite, la couche raster doit être convertie en un tableau utilisé comme entrée pour la fonction erode() .

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

Outre erode() , les fonctions morphologiques dilate() , opening() et closing() peuvent également être appliquées.

plot(rErode)

Logo R érodé



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow