Szukaj…


Wprowadzenie

Zobacz także I / O dla obrazów rastrowych

Obliczanie tekstury GLCM

Tekstura Matrycy Współwystępowania Poziomu Szarości (Haralick i in. 1973) jest potężną funkcją obrazu do analizy obrazu. Pakiet glcm zapewnia łatwą w użyciu funkcję do obliczania takich funkcji RasterLayer dla obiektów RasterLayer w R.

library(glcm)
library(raster)

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

wprowadź opis zdjęcia tutaj

Obliczanie tekstur GLCM w jednym kierunku

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

plot(rglcm)

wprowadź opis zdjęcia tutaj

Obliczenia niezmienne rotacje tekstur

Funkcje teksturalne można również obliczyć we wszystkich 4 kierunkach (0 °, 45 °, 90 ° i 135 °), a następnie połączyć w jedną teksturę niezmienną dla obrotu. Kluczem do tego jest parametr 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)

wprowadź opis zdjęcia tutaj

Morfologie matematyczne

Pakiet mmand udostępnia funkcje do obliczania morfologii matematycznych dla tablic n-wymiarowych. Po krótkim obejściu można je również obliczyć dla obrazów rastrowych.

library(raster)
library(mmand)

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

Najpierw należy ustawić jądro (ruchome okno) o rozmiarze (np. 9x9) i typie kształtu (np. disc , box lub diamond )

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

Następnie warstwę rastrową należy przekonwertować na tablicę, która jest używana jako dane wejściowe dla funkcji erode() .

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

Oprócz erode() można również zastosować w ten sposób funkcje morfologiczne dilate() , opening() i closing() .

plot(rErode)

Eroded R. Logo



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow