-
Notifications
You must be signed in to change notification settings - Fork 8
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.MotionCorrectionAbstract class for running motion correction on two photon recordings -
nansen.processing.RoiSegmentationAbstract class for running auto detection of ROIs on two photon recordings -
nansen.stack.processor.TemporalDownsamplerClass for temporally downsampling of anImageStack -
nansen.wrapper.flowreg.ProcessorClass for running Flow-Registration (motion correction) -
nansen.wrapper.normcorre.ProcessorClass for running NoRMCorre (motion correction) -
nansen.wrapper.extract.ProcessorClass 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.