R Language
Analiza rastra i obrazu
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)
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)
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)
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)