-
Notifications
You must be signed in to change notification settings - Fork 7
ImageStackProcessor
nansen.stack.ImageStackProcessor
is an abstract superclass for algorithms that will run on an ImageStack
object. It is especially useful for ImageStacks
that are very large and may not fit in the computer's memory.
The ImageStackProcessor
provides functionality for splitting an ImageStack
(typically in the time dimension) in multiple parts and running the processing on each part in sequence. Furthermore, if an ImageStack
has multiple channels and/or planes, the iteration mode over these dimensions can be configured in a flexible manner. For example, it is possible to iterate over individual channels, run the processing on multiple channels simultaneously or to treat one channel as a reference channel and apply the results to the remaining channels.
The class is designed so that algorithms can be restarted and skip over data that have already been processed (useful in cases where a matlab- or a system-error interrupts a time-consuming process). It is also possible to rerun the method on a specified set of parts.
Some implementations (subclasses) in NANSEN include:
-
nansen.processing.MotionCorrection
Abstract class for running motion correction on two photon recordings -
nansen.processing.RoiSegmentation
Abstract class for running auto detection of ROIs on two photon recordings -
nansen.stack.processor.TemporalDownsampler
Class for temporally downsampling of anImageStack
-
nansen.wrapper.flowreg.Processor
Class for running Flow-Registration (motion correction) -
nansen.wrapper.normcorre.Processor
Class for running NoRMCorre (motion correction) -
nansen.wrapper.extract.Processor
Class for running EXTRACT (roi segmentation)
This diagram shows an example of the class hierarchy for the flowreg wrapper for motion correction. Each class in the hierarchy has a specialized purpose.
- HasOptions : Provide an options manager for an algorithm/method, so that a user can create and save customized options sets.
- HasSubSteps : Provide display information about each processing step for an algorithm/method that has multiple steps.
- ToolboxWrapper : Not implemented yet, but the intention is to collect everything which is common for different toolbox wrappers in this class.
- DataMethod : Responsible for loading and saving data for an algorithm/method to files.
- ImageStackProcessor : Handles chunking and iteration when doing processing on an ImageStack.
- MotionCorrection : General motion correction steps for a two-photon recording.
- flowreg.Processor : Implements steps that are specific for Flow-Registration.