Zoeken…


Invoering

Zie ook I / O voor rasterafbeeldingen

GLCM-textuur berekenen

Gray Level Co-Occurrence Matrix (Haralick et al. 1973) textuur is een krachtige beeldfunctie voor beeldanalyse. Het glcm pakket biedt een eenvoudig te gebruiken functie om dergelijke texutrale functies voor RasterLayer objecten in R te berekenen.

library(glcm)
library(raster)

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

voer hier de afbeeldingsbeschrijving in

GLCM-structuren in één richting berekenen

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

plot(rglcm)

voer hier de afbeeldingsbeschrijving in

Berekening rotatie-invariante textuurkenmerken

De textuurkenmerken kunnen ook in alle 4 richtingen (0 °, 45 °, 90 ° en 135 °) worden berekend en vervolgens worden gecombineerd tot één rotatie-invariante textuur. De sleutel hiervoor is de shift parameter:

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)

voer hier de afbeeldingsbeschrijving in

Wiskundige morfologieën

Het pakket mmand biedt functies voor de berekening van wiskundige morfologieën voor n-dimensionale arrays. Met een kleine oplossing kunnen deze ook worden berekend voor rasterafbeeldingen.

library(raster)
library(mmand)

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

Eerst moet een kernel (bewegend venster) worden ingesteld met een grootte (bijvoorbeeld 9x9) en een vormtype (bijvoorbeeld disc , box of diamond )

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

Daarna moet de rasterlaag worden omgezet in een array die wordt gebruikt als invoer voor de functie erode() .

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

Naast erode() kunnen ook de morfologische functies dilate() , opening() en closing() manier worden toegepast.

plot(rErode)

Geërodeerd R-logo



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow