Class ScaleImage<S>
- Type Parameters:
S
- shared-state for task.
- Direct Known Subclasses:
ScaleImageCommonSize
,ScaleImageIndependently
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 Name | Default? | Description |
---|---|---|
"scaled" | yes | A scaled copy of the input image. |
"scaledFlattened" | no | A scaled copy of the maximum-intensity-projection of the input image. |
inherited from Task |
- Author:
- Owen Feehan
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
Iff true the image to be scaled is treated as a binary-mask, and interpolation during scaling ensures only two binary-values are outputted.protected ScaleCalculator
Calculates what scale-factor to apply on the image. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
afterAllJobsAreExecuted
(S sharedState, InputOutputContext context) Called once after all calls toTask.executeJob(org.anchoranalysis.experiment.task.ParametersUnbound<T, S>)
.If specified, default rules for determine which outputs are enabled or not.void
doJobOnInput
(InputBound<StackSequenceInput, S> input) Performs the task on a particular input.The interpolator to use for scaling images.Calculates what scale-factor to apply on the image.boolean
Is the execution-time of the task per-input expected to be very quick to execute?Highest class(es) that will function as a valid input.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.protected abstract Stack
scaleStack
(Stack stack, Optional<ImageSizeSuggestion> suggestedSize, VoxelsResizer voxelsResizer, S sharedState) Produce a scaled version of aStack
, mapping each channel to a scaled version of itself.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.void
setInterpolator
(Interpolator interpolator) The interpolator to use for scaling images.void
setScaleCalculator
(ScaleCalculator scaleCalculator) Calculates what scale-factor to apply on the image.Methods inherited from class org.anchoranalysis.experiment.bean.task.Task
beforeAnyJobIsExecuted, executeJob, isInputCompatibleWith
Methods inherited from class org.anchoranalysis.bean.AnchorBean
checkMisconfigured, describeBean, describeChildren, duplicateBean, fields, findFieldsOfClass, getBeanName, getLocalPath, localise, toString
-
Field Details
-
scaleCalculator
Calculates what scale-factor to apply on the image. -
binary
protected boolean binaryIff 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
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 classTask<StackSequenceInput,
S> - Returns:
- the input-types that a task expects.
-
doJobOnInput
Description copied from class:Task
Performs the task on a particular input.- Specified by:
doJobOnInput
in classTask<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
Called once after all calls toTask.executeJob(org.anchoranalysis.experiment.task.ParametersUnbound<T, S>)
.- Specified by:
afterAllJobsAreExecuted
in classTask<StackSequenceInput,
S> - Parameters:
sharedState
- the shared-statecontext
- 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 classTask<StackSequenceInput,
S> - Returns:
- true iff the execution is expected to be very quick, false otherwise.
-
defaultOutputs
Description copied from class:Task
If specified, default rules for determine which outputs are enabled or not.- Overrides:
defaultOutputs
in classTask<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 aStack
, 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
Calculates what scale-factor to apply on the image. -
setScaleCalculator
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
The interpolator to use for scaling images. -
setInterpolator
The interpolator to use for scaling images.
-