Run exampleFilter.m to see how the algorithm performs on a sample of moderately noisy 2-photon imaging data. This function is a faster, vectorised, version of Java code written by C.P. Mauer as part of an ImageJ plugin (see below).
Implements a predictive Kalman-like filter in the time domain of the image stack. Algorithm taken from Java code by C.P. Mauer. http://rsb.info.nih.gov/ij/plugins/kalman.html
imageStack - a 3d matrix comprising of a noisy image sequence. Time is
the 3rd dimension.
gain - the strength of the filter [0 to 1]. Larger gain values means more
aggressive filtering in time so a smoother function with a lower
peak. Gain values above 0.5 will weight the predicted value of the
pixel higher than the observed value.
percentvar - the initial estimate for the noise [0 to 1]. Doesn't have
much of an effect on the algorithm.
imageStack - the filtered image stack
The time series will look noisy at first then become smoother as the
filter accumulates evidence.
Rob Campbell, August 2009