R/labelGeometryMeasures.R

Defines functions labelGeometryMeasures

Documented in labelGeometryMeasures

#' labelGeometryMeasures
#'
#' Wrapper for the ANTs funtion labelGeometryMeasures
#'
#' @param labelImage on which to compute geometry
#' @param intensityImage optional
#' @return none
#' @author Avants BB, Tustison NJ
#' @examples
#' fi<-antsImageRead( getANTsRData("r16") , 2 )
#' seg<-kmeansSegmentation( fi, 3 )$segmentation
#' geom<-labelGeometryMeasures(seg,fi)
#'
#'
#' @export labelGeometryMeasures
labelGeometryMeasures <- function( labelImage, intensityImage=NULL ) {
  labelImage = check_ants(labelImage)
  if ( missing( intensityImage ) | 
       is.null(intensityImage)) {
    intensityImage <- labelImage
  }
  outcsv<-tempfile( fileext='.csv' )
  veccer<-list( labelImage@dimension, labelImage, intensityImage, outcsv )
  pp <- .Call("LabelGeometryMeasures", .int_antsProcessArguments(veccer) )
  pp = read.csv( outcsv )
  pp$Label = sort( unique( labelImage[ labelImage > 0 ] ) )
  names( pp )[2] = "VolumeInMillimeters"
  spc = prod( antsGetSpacing( labelImage ) )
  pp$VolumeInMillimeters = pp$VolumeInMillimeters * spc
  return( pp )
}
neuroconductor-devel/ANTsR documentation built on April 1, 2021, 1:02 p.m.