kmeansSegmentation: k means image segmentation.

View source: R/kmeansSegmentation.R

kmeansSegmentationR Documentation

k means image segmentation.

Description

k means image segmentation that is a wrapper around atropos

Usage

kmeansSegmentation(img, k, kmask = NULL, mrf = 0.1, verbose = FALSE, ...)

Arguments

img

input image

k

integer number of classes

kmask

segment inside this mask

mrf

smoothness, higher is smoother

verbose

boolean

...

additional arguments to pass to atropos

Value

segmentation and probability images

Note

This function will likely give different results on multiple runs.

Author(s)

Brian B. Avants

Examples


fi <- antsImageRead(getANTsRData("r16"), 2)
orig <- antsImageClone(fi)
fi <- n3BiasFieldCorrection(fi, 4)
seg <- kmeansSegmentation(fi, 3)
seg2 <- kmeansSegmentation(fi, 3)
arr1 <- as.array(seg$segmentation)
arr2 <- as.array(seg2$segmentation)
testthat::expect_equal(arr1, arr2)

set.seed(2)
# set below for slower but numerically repeatable results
# these should be set in .Renviron not by sys calls
# Sys.setenv(ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS = 1 )
orig <- antsImageRead(getANTsRData("r16"), 2)
seg <- kmeansSegmentation(orig, 3, use_random_seed = TRUE)
seg2 <- kmeansSegmentation(orig, 3, use_random_seed = TRUE)
arr1 <- as.array(seg$segmentation)
arr2 <- as.array(seg2$segmentation)
tab <- table(arr1, arr2)
tab
identical(arr1, arr2)
seg <- kmeansSegmentation(orig, 3, use_random_seed = FALSE)
seg2 <- kmeansSegmentation(orig, 3, use_random_seed = FALSE)
arr1 <- as.array(seg$segmentation)
arr2 <- as.array(seg2$segmentation)
tab <- table(arr1, arr2)
tab

stnava/ANTsR documentation built on April 13, 2025, 4:10 a.m.