| RunDenoising {DynClust} | R Documentation |
Denoising step of a dynamical image sequence
Description
Performs the denoising step of a dynamic sequence of images. It is also the first step of the clustering.
The denoising procedure is iteratively applied on each voxel.
The denoised version of Fx is obtained with a three stages procedure: 1) Selection of time-homogeneous voxels in the sub-mask around the voxel of interest; 2) Growth of spatial neighborhoods made of time-homogeneous voxels obtained at stage 1 with sizes growing geometrically—each neiborhood is associated to a denoised version by averaging over its members; 3) Selection of the largest spatial neighborhood such that its associated denoised version is time-homogeneous with all the previous ones.
Time homogeneity is tested with function
MultiTestH0.
Further details about the denoising method and the statistical test of homogeneity can be found in the references.
Usage
RunDenoising(data.array, data.var = 1, depth = 1, alpha = 0.05,
mask.size = NA, nproc = 1, enhStart = ifelse(is.null(var), 2, 1))
Arguments
data.array |
a (2D or 3D)+T array containing the dynamic sequence of images (the dataset). The last dimension is the time. |
data.var |
a numeric indicating the variance of the
dataset (default 1). If set to NULL, the variance is
computed using a baseline image. See |
depth |
a numeric indicating the depth of a voxel. |
alpha |
a numeric value indicating the global level of the multitest. |
mask.size |
a vector indicating the size of the spatial hypercube defined around voxels used to search for neighbors. If NA (default): sqrt(dim(data.array)[1:length(dim(data.array))-1]). If NULL (complete image): dim(data.array)[1:length(dim(data.array))-1] |
nproc |
a numeric value indicating the number of processors used for parallel computation. |
enhStart |
an integer, if larger than 1, a baseline
is computed as a median image obtain from time indexes
between 1 and enhStart-1. Default value
|
Value
a list containing:
-
info.den, a list of list whose length is the number of voxels, each sub-list contains the result of buildEstimate for one voxel. -
data.proj, the projections of the dynamics. a list containing a denoised version of the dataset as an array, as well as a list for which each element contains a list with the voxel index, the indexes of its neighboors, the resulting denoised signal, and the variance of the denoised signal -
var, a numeric providing the known variance
Author(s)
Tiffany Lieury, Christophe Pouzat, Yves Rozenholc
References
Rozenholc, Y. and Reiss, M. (2012) Preserving time structures while denoising a dynamical image, Mathematical Methods for Signal and Image Analysis and Representation (Chapter 12), Florack, L. and Duits, R. and Jongbloed, G. and van~Lieshout, M.-C. and Davies, L. Ed., Springer-Verlag, Berlin
Lieury, T. and Pouzat, C. and Rozenholc, Y. (submitted) Spatial denoising and clustering of dynamical image sequence: application to DCE imaging in medicine and calcium imaging in neurons
See Also
GetDenoisingResults,
MultiTestH0.
Examples
## Not run:
library(DynClust)
## use fluorescence calcium imaging of neurons performed with Fura 2 excited at 340 nm
data('adu340_4small',package='DynClust')
## Gain of the CCD camera:
G <- 0.146
## readout variance of the CCD camera:
sro2 <- (16.4)^2
## Stabilization of the variance to get a normalized dataset (variance=1)
FT <- 2*sqrt(adu340_4small/G + sro2)
FT.range = range(FT)
## launches the denoising step on the dataset with a statistical level of 5%
FT.den.tmp <- RunDenoising(FT,1,mask.size=NA,nproc=2)
## get the results of the denoising step
FT.den.res <- GetDenoisingResults(FT,FT.den.tmp)
## plot results at time 50 in same grey scale
par(mfrow=c(1,3))
image(FT[,,50],zlim=FT.range,col=gray(seq(0,1,l=128)))
title('Original')
image(FT.den.res[,,50],zlim=FT.range,col=gray(seq(0,1,l=128)))
title('Denoised')
image(FT.den.res[,,50]-FT[,,50],col=gray(seq(0,1,l=128)))
title('Residuals')
## End(Not run)