conv_fft: Convolution of 3D Arrays using the Fourier Transform

Description Usage Arguments Details Value Author(s) References See Also Examples

Description

Convolve a

Usage

1
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”.

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).

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.

Author(s)

Brandon Whitcher

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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")


Search within the dcemriS4 package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.