#' convolve one image with another
#'
#' convolves images together
#'
#' @param image antsImage to convolve
#' @param kernelImage antsImage acting as kernel
#' @param crop boolean automatically crops kernelImage
#' @return convimage
#' @author Brian B. Avants
#' @keywords convolve, convolution
#' @examples
#'
#' fi<-antsImageRead( getANTsRData("r16") ,2)
#' convimg<-makeImage( c(3,3) , c(1,0,1,0,-4,0,1,0,1) )
#' convout<-convolveImage( fi, convimg )
#' convimg2<-makeImage( c(3,3) , c(0,1,0,1,0,-1,0,-1,0) )
#' convout2<-convolveImage( fi, convimg2 )
#'
#' @export convolveImage
convolveImage <- function( image, kernelImage, crop=TRUE ) {
if ( image@pixeltype != "float" | kernelImage@pixeltype != "float" ) {
print(args(convolveImage))
print("input images must have float pixeltype")
return(NA)
}
if ( crop )
{
kernelImageMask<-getMask( kernelImage )
kernelImage<-cropImage( kernelImage , kernelImageMask )
kernelImageMask<-cropImage( kernelImageMask , kernelImageMask )
kernelImage[ kernelImageMask == 0 ]<-
mean( kernelImage[ kernelImageMask == 1 ] )
}
outimg = .Call("itkConvolveImage", image, kernelImage, PACKAGE = "ANTsR")
outimg@components = as.integer( image@components )
return( outimg )
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.