dcemriS4 (version 0.48)

conv.fft: Convolution of 3D Arrays using the Fourier Transform

Description

Convolve a

Usage

conv.fft(A, B, C, FFTA=NULL)

Arguments

A
is a three-dimensional array (the template).
B
is a three-dimensional array (the target).
C
is a vector of length three (the center of the template).
FFTA
is the three-dimensional Fourier transform of A, this may save time when looping over multiple targets.

Value

  • A three-dimensional array, the same dimension as the input arrays, that is the convolution of the target to the template at all spatial locations.

Details

The arrays $A$ and $B$ are transformed into the Fourier domain and multiplied together (equivalent to a convolution in the image domain across all spatial locations simultaneously).

References

Briggs, W.L. and Henson, V.E. (1995) The DFT: An Owner's Manual for the Discrete Fourier Transform, SIAM: Philadelphia.

See Also

fft, ftm, shift3D

Examples

Run this code
cube <- array(0, c(20,20,1))
cube[9:12,9:12,1] <- 1
tkernel <- array(0, c(20,20,1))
tkernel[,,1] <- c(.5, 1, .5, rep(0,20-3))tcenter <- find.center(ifelse(tkernel > 0, TRUE, FALSE))
out <- conv.fft(tkernel, cube, tcenter)
out[8:13,8:13,1]  ## text output

par(mfrow=c(2,2))  ## graphic output
image(drop(tkernel), col=tim.colors(), main="Template")
image(drop(cube), col=tim.colors(), main="Target")
image(drop(out), col=tim.colors(), main="Output")

Run the code above in your browser using DataLab