Type Parameters:
S - shared-state for task.
Direct Known Subclasses:
ScaleImageCommonSize, ScaleImageIndependently

public abstract class ScaleImage<S> extends Task<StackSequenceInput,S>
Base class for tasks whose primary aim is to scale (resize) an image.

An RGB image is treated as a single-stack, otherwise each channel is scaled and outputted separately.

Second-level output keys for scaled and/or scaledFlattened additionally determine which stacks get outputted or not.

Any z-dimension present is unaffected by the scaling in scaled.

The following outputs are produced:

Output NameDefault?Description
"scaled"yesA scaled copy of the input image.
"scaledFlattened"noA scaled copy of the maximum-intensity-projection of the input image.
inherited from Task
Author:
Owen Feehan
  • Field Details

    • scaleCalculator

      protected ScaleCalculator scaleCalculator
      Calculates what scale-factor to apply on the image.
    • binary

      protected boolean binary
      Iff true the image to be scaled is treated as a binary-mask, and interpolation during scaling ensures only two binary-values are outputted.
  • Constructor Details

    • ScaleImage

      public ScaleImage()
  • Method Details

    • inputTypesExpected

      public InputTypesExpected inputTypesExpected()
      Description copied from class: Task
      Highest class(es) that will function as a valid input.

      This is usually the class of T (or sometimes the absolute base class InputFromManager).

      Specified by:
      inputTypesExpected in class Task<StackSequenceInput,S>
      Returns:
      the input-types that a task expects.
    • doJobOnInput

      public void doJobOnInput(InputBound<StackSequenceInput,S> input) throws JobExecutionException
      Description copied from class: Task
      Performs the task on a particular input.
      Specified by:
      doJobOnInput in class Task<StackSequenceInput,S>
      Parameters:
      input - the input for the job.
      Throws:
      JobExecutionException - if an error occurs executing a particular job, that is not otherwise suppressed.
    • afterAllJobsAreExecuted

      public void afterAllJobsAreExecuted(S sharedState, InputOutputContext context) throws ExperimentExecutionException
      Description copied from class: Task
      Specified by:
      afterAllJobsAreExecuted in class Task<StackSequenceInput,S>
      Parameters:
      sharedState - the shared-state
      context - IO-context for experiment (not for an individual job)
      Throws:
      ExperimentExecutionException - if a fatal error occurs executing this step of the experiment.
    • hasVeryQuickPerInputExecution

      public boolean hasVeryQuickPerInputExecution()
      Description copied from class: Task
      Is the execution-time of the task per-input expected to be very quick to execute?
      Specified by:
      hasVeryQuickPerInputExecution in class Task<StackSequenceInput,S>
      Returns:
      true iff the execution is expected to be very quick, false otherwise.
    • defaultOutputs

      public OutputEnabledMutable defaultOutputs()
      Description copied from class: Task
      If specified, default rules for determine which outputs are enabled or not.
      Overrides:
      defaultOutputs in class Task<StackSequenceInput,S>
      Returns:
      the default rules if they exist.
    • scaleStack

      protected abstract Stack scaleStack(Stack stack, Optional<ImageSizeSuggestion> suggestedSize, VoxelsResizer voxelsResizer, S sharedState) throws OperationFailedException
      Produce a scaled version of a Stack, mapping each channel to a scaled version of itself.
      Parameters:
      stack - the stack before scaling.
      suggestedSize - the suggested-size that has been passed into the task.
      voxelsResizer - how to resize the voxels in a channel.
      sharedState - the shared-state of the task.
      Returns:
      the scaled version of the stack.
      Throws:
      OperationFailedException - if the scaling operation fails.
    • getScaleCalculator

      public ScaleCalculator getScaleCalculator()
      Calculates what scale-factor to apply on the image.
    • setScaleCalculator

      public void setScaleCalculator(ScaleCalculator scaleCalculator)
      Calculates what scale-factor to apply on the image.
    • isBinary

      public boolean isBinary()
      Iff true the image to be scaled is treated as a binary-mask, and interpolation during scaling ensures only two binary-values are outputted.
    • setBinary

      public void setBinary(boolean binary)
      Iff true the image to be scaled is treated as a binary-mask, and interpolation during scaling ensures only two binary-values are outputted.
    • getInterpolator

      public Interpolator getInterpolator()
      The interpolator to use for scaling images.
    • setInterpolator

      public void setInterpolator(Interpolator interpolator)
      The interpolator to use for scaling images.