Preprocessing: Stripe removal from movies - bahanonu/ciatah GitHub Wiki

Please use the online documentation website going forward: https://bahanonu.github.io/ciatah/

Stripe removal from movies

Some cameras will produce vertical and/or horizontal stripes in the movies that users will want to remove. Below is an example of process to remove strip from movies. The underlying function is removeStripsFromMovie and users can remove using modelPreprocessMovie module in the calciumImagingAnalysis class.

Vertical and horizontal stripes can be removed with the vertical and horizontal aspect of the the Fourier spectrum. In my default implementation for users I attenuate at lower frequencies since those usually do not contain the camera-induced stripes. If users have experimental induced stripes, they should lower the frequency threshold to include low frequency (spatially large) stripes.

Example implementation

Below is an example removal of stripes showing both the Fourier domain analysis in the top row and the real domain processing in the bottom row. Bottom right shows the difference between the original and filtered movie, indicating where the stripes have been removed.

picture1

removeStripsFromMovie

To run this on any inputMovie movie matrix already loaded in MATLAB, do the following.

% This will produce a result similar to above.
removeStripsFromMovie(inputMovie,'stripOrientation',both,'meanFilterSize',7,'freqLowExclude',10,'bandpassType','highpass')

calciumImagingAnalysis

To use within the calciumImagingAnalysis class, select modelPreprocessMovie module and have stripeRemoval selected then on the options page, choose whether to remove vertical, horizontal, or both stripes. image image