ImFusion SDK 4.3
Algorithm Class Referenceabstract

#include <ImFusion/Base/Algorithm.h>

Interface for describing algorithms that can be made available in the ImFusion Suite through AlgorithmFactory. More...

Inherits Configurable, and NotCopyable.

Inherited by AlgorithmReconstructionDecorator< Algorithm >, ASCAlgorithm, ASCProjectionAlgorithm, ASCRegistrationInterface, AbstractImageRegistration, AnalyzeMotion, ConvertToMultiLabelMap, GenericASCFromMultiLabelMap, MaskAnatomicalStructure, MoveFaceLabelsToHalfEdges, SmoothMeshes, AnatomyAlgorithm, InspectStyleSheetsAlgorithm, ApplyASCDeformation, ApplyMaskAlgorithm, ApplyWindowLevelAlgorithm, AssignMeshTextureAlgorithm, AttachDenseDeformationAlgorithm, AttachTrackingSequenceAlgorithm, AverageImagesAlgorithm, BakeDeformationAlgorithm, BakeMeshDeformationAlgorithm, BakeTransformationAlgorithm, BasicImageProcessing, BicubicBSplineApproximationAlgorithm, BilateralFilterAlgorithm, BinaryMaskToTextAlgorithm, BrainVesselSegmentationAlgorithm, BullseyeVisualizationAlgorithm, CBCTPostProcessing, ConeBeamCalibration, ConeBeamSimulation, ConvertToConeBeamData, CopyConeBeamGeometryAlgorithm, GeometryAlgorithm, GridBasedDistortionCorrection, Mesh2D3DRegistrationAlgorithm, ProjectionMatrixIoAlgorithm, ProjectionPreProcessingAlgorithm, RadonTransformAlgorithm, ReconstructionAlgorithm, RingArtifactReduction, SyntheticCTFromMeshAlgorithm, XRay2D3DRegistrationAlgorithm, CameraCalibrationAlgorithm, CameraCalibrationSetterAlgorithm, CameraRegistrationAlgorithm, CenterlineGraphExtractionAlgorithm, ClFftAlgorithm, CombineASCSetAlgorithm, CombineGraphsAlgorithm, CombineImagesAlgorithm, CombineImagesAsVolumeAlgorithm, CombineIntoTrackedSharedImageSetAlgorithm, CombineMeshesAlgorithm, CombinePointCloudsAlgorithm, CombineSplitVolumesAlgorithm, ComputeCommonGraphFeaturesAlgorithm, ConnectedComponentsAlgorithm, ContrastFilter, CreatePixelwiseLearningStreamAlgorithm, CreateStereoSharedImageSetAlgorithm, CropLabelMapAlgorithm, CubicSplineInterpolationAlgorithm, DISAFeaturesAlgorithm, DataHashAlgorithm, DeformableIcpAlgorithm, DeformationEditor, DepthMapToMeshAlgorithm, DepthMapToPointCloudAlgorithm, DescriptorsRegistrationAlgorithm, DisplacementVisualizer, DisplayRecorderAlgorithm, DistanceTransformAlgorithm, DistanceVolumeAlgorithm, DoseComputationAlgorithm, DrawGraphAlgorithm, EndoscopicToolSegmentationAlgorithm, EvaluateGraphAtImageAlgorithm, EvaluateLinearShapeModel, ExtractDeformationAlgorithm, ExtractImagesFromVolumeAlgorithm, ExtractMeshTextureAlgorithm, ExtractSelection, ExtractTrackingSequence, FeatureDetectionAlgorithm, FiducialExtractionAlgorithm, FitShapeAlgorithm, FlowVisualizationAlgorithm, FreeFormMeshAlgorithm, FrequencyFilterAlgorithm, GenerateLinearShapeModel, GlFilter, GlFilterSet, GlFreeFormDeformation, GlVesselnessFilter, GlVolumeCompounding, GraphBasedSegmentation, GraphLaplacianAlgorithm, GraphReindexingAlgorithm, GraphSmoothingAlgorithm, GraphToPointCloudAlgorithm, HandEyeCalibrationAlgorithm, HistogramIntensityClusteringAlgorithm, HoughTransformAlgorithm, CreateDeviceAlgorithm, ImageBasedGatingAlgorithm, ImageComparison, ImageGatingAlgorithm, ImageInpaintingAlgorithm, ImageMattingAlgorithm, ImageRegistration, ImageResamplingAlgorithm, ImageSequenceRegistration, ImageSetAutoCorrelation, ImageSharpnessEstimationAlgorithm, ImageStatisticsAlgorithm, ImageTemplateMatchingAlgorithm, ImageUndistortionAlgorithm, IntensityClusteringAlgorithm, InterlacedToStereoAlgorithm, InterlacedToStereoStreamAlgorithm, IntraOralFilter, InvertDeformationAlgorithm, IoAlgorithm, KinectAzureStreamPlaybackAlgorithm, KinectAzureStreamRecordingAlgorithm, LC2Preprocessing, LabelMapInterpolationAlgorithm, LabelMapPropagationAlgorithm, LabelMapToContoursAlgorithm, LabelMapToRTStructure, LabelOverlapAlgorithm, LabelStatisticsAlgorithm, LabelToFrameBasedPointCloudAlgorithm, LabelToMeshAlgorithm, LabelingAlgorithm, LabelsOperationsAlgorithm, LabelsToNarrowBandAlgorithm, LandmarksToImageAlgorithm, LiftChartOverlayAlgorithm, LineToIsosurfaceIntersectionAlgorithm, LinkPose, LiveHandEyeCalibrationAlgorithm, LiveHandEyeEvaluationAlgorithm, LiveImageBasedGatingTestAlgorithm, LiveStereoCalibrationAlgorithm, LiveStreamProcessingAlgorithm, LiveStreamingAlgorithm, LiveTrackingAlgorithm, LiveTrackingPointRegistrationAlgorithm, LiverDetectionAlgorithm, LoadSpineTemplateAlgorithm, AddPositionAsChannelAlgorithm, GenerateBoxSegmentationTrainingDataAlgorithm, GroupToDataItemAlgorithm, KeypointExtractionAlgorithm, LandmarkPredictionAlgorithm, LocalConvolutionalNetworkAlgorithm, LocalizeSegmentAlgorithm, MRIBiasFieldCorrectionAlgorithm, MachineLearningModelAlgorithm, MeshSegmentationAlgorithm, MetricAlgorithm, ModalitySynthesisAlgorithm, OperationsSequenceAlgorithm, MakeCompatibleLabelMapAlgorithm, MarkAsLabelMapAlgorithm, MarkerDetectionAlgorithm, MarkerGenerationAlgorithm, MarkerHandEyeCalibrationAlgorithm, MaskEditor, MaskFluoroImageAlgorithm, MatchWindowingAlgorithm, Measuring, MergeASCAlgorithm, MergeChannelsAlgorithm, MergeFrameBasedPointCloudsAlgorithm, MergeTrackingSequencesAlgorithm, MeshAlignmentAlgorithm, MeshBooleanOperationsAlgorithm, MeshCollisionDetectionAlgorithm, MeshCreatorAlgorithm, MeshDistanceAlgorithm, MeshMeasurementsAlgorithm, MeshPointCloudCroppingAlgorithm, MeshProcessingAlgorithm, MeshToLabelMapAlgorithm, MeshToPointCloudAlgorithm, MinimumSpanningTreeAlgorithm, MirrorRegistrationAlgorithm, MonocularDepthEstimationAlgorithm, MorphologicalInterpolationAlgorithm, MorphologicalOperationsAlgorithm, ConnectionLatencyMeasuringAlgorithm, NodeToEdgeFeatureAlgorithm, OpticalFlowAlgorithm, OptimizeParametricDeformationAlgorithm, OptimizingAlgorithm, ParseFolderAndRunWorkspaceAlgorithm, PartitionGraphsAlgorithm, PlottingAlgorithm, PointCloudAnalysis, PointCloudFilteringAlgorithm, PointCloudMeasuringAlgorithm, PointCloudOverlapAlgorithm, PointCloudPlaneFittingAlgorithm, PointCloudToDepthMapAlgorithm, PointCorrAlgorithm, PointCorrespondencesAlgorithm, PoissonSurfaceReconstructionAlgorithm, PolyDataStreamVisualizationAlgorithm, PolyRigidDeformationAlgorithm, PoseGraphOptimizationAlgorithm, PropertiesInspector, PruneTerminalPathsAlgorithm, RGBDCalibrationAlgorithm, RGBDPlaybackExtractionAlgorithm, RGBDReconstructionAlgorithm, CreateMoveItControlStreamAlgorithm, CreateROSStreamAlgorithm, ROSMasterAlgorithm, RTStructureToLabelMap, ReduceToSelection, RegistrationInitAlgorithm, RegistrationResultsAlgorithm, RemoveModalityAlgorithm, RemoveSpacingAlgorithm, RemoveUnlabelledImagesAlgorithm, ReorderLabelValuesAlgorithm, ReplaceValuesAlgorithm, RmseAlgorithm, CreateRobotStreamAlgorithm, FrankaManagerAlgorithm, RandomTrackingSequence, SE3Interpolator, RollingGuidanceFilterAlgorithm, StructuresViewAlgorithm, SegmentationReductionsAlgorithm, SetGatingMetadataAlgorithm, SetModalityAlgorithm, SetSpacingAlgorithm, SetTimestampsAlgorithm, SharedImageArithmeticAlgorithm, SideBySideToStereoAlgorithm, SideBySideToStereoStreamAlgorithm, SimilarityMeasureTester, SkinSegmentationAlgorithm, SpineBaseAlgorithm, SpineFromMultiLabelAlgorithm, SpineLocalization2DAlgorithm, SpineMeshCurvatureAlgorithm, SpinePolyRigidDeformation, SpinePolyRigidRegistration, SplineLabelPainterAlgorithm, SplineSlicingAlgorithm, SplitASCSetAlgorithm, SplitChannelsAlgorithm, SplitImageSetAlgorithm, SplitImagesAlgorithm, StereoCalibrationSetterAlgorithm, StereoImageExtractSelection, StereoImageReduceToSelection, StereoReconstructionAlgorithm, StereoRectificationAlgorithm, StereoStreamReconstructionAlgorithm, StereoStreamToVideoAlgorithm, StreamAlgorithm, StreamForwarder, StreamRecorderAlgorithm, SuperpixelsAlgorithm, SuperpixelsFilter, SurfaceRegistration, SurfaceToVolumeRegistrationAlgorithm, SynchronizeMemGlAlgorithm, SyntheticDataAlgorithm, TensorFrequencyFilteringAlgorithm, TensorLocalAverageAlgorithm, TexturingAlgorithm, ToolCalibrationAlgorithm, ToolVisualizationAlgorithm, TrackedSharedImageSetPropertiesAlgorithm, TrackingSequenceProcessing, TrackingStreamPropertiesAlgorithm, TrackingToolCalibrationWizardAlgorithm, TransferGraphFeatureToMeshAlgorithm, BaseGeometryDetectionAlgorithm, BoneSegmentationBaseAlgorithm, ConvertToSweep, ExportCalibrationAlgorithm, ExtractDoppler, FrameGeometryPropertiesAlgorithm, FrameGrabbingAlgorithm, FrameGrabbingConfigEditorAlgorithm, GenerateDataForTrackingEstimation, GlSweepCompounding, ImportCalibrationAlgorithm, LabelCompoundingAlgorithm, MergeSweepsAlgorithm, NeedleSweepCalibrationAlgorithm, ProbeDeformationAlgorithm, ProcessUltrasoundClip, RawDataAlgorithm, RemoveDuplicateFrames, ScanConversion, ScanConversion3D, SweepCroppingAlgorithm, SweepGlobalInitAlgorithm, SweepMotion, SweepPlaybackAlgorithm, SweepPointCorrAlgorithm, SweepProcessingAlgorithm, SweepToMeshAlgorithm, SweepTrajectoryAnalysisAlgorithm, SyntheticUltrasoundSweepAlgorithm, TrackingEstimationAlgorithmInterface, UltrasoundCalibration, UltrasoundConeCalibrationAlgorithm, UltrasoundDISARegistrationAlgorithm, UltrasoundRegistrationAlgorithm, UltrasoundSimulation, UltrasoundSimulationHybrid, VolumeReslicingAlgorithm, VectorFieldFlowAlgorithm, VertebraDissectionAlgorithm, VertebraDissectionLegacyAlgorithm, VideoStreamExtractionAlgorithm, OpticalFlowAlgorithm, VolumeBasedMeshCurvatureAlgorithm, VolumeBasedMeshRegistrationAlgorithm, VolumeFreeformCroppingAlgorithm, and WatershedSegmentationAlgorithm.

Detailed Description

Interface for describing algorithms that can be made available in the ImFusion Suite through AlgorithmFactory.

The Algorithm interface provides the following functionality:

  • They can be registered with the AlgorithmFactory. Define a createCompatible() function serving both as predicate function checking if input data is suitable, as well as factory function to instantiate the algorithm. If an algorithm was instantiated by a factory, the factoryInfo() struct is populated.
  • The inherit from Configurable so that their settings/parameters can be easily serialized.
  • You must implement the compute() function to execute the algorithm on the input data provided at creation. Afterwards, users can call takeOutput() to receive Data that was newly created during compute(). Use the status() interface to signal whether the last call to compute() was successful or not.
  • The Action interface enables you to define a generic set of actions a user can execute on your algorithm without knowing about the concrete derived type.

If you would like to provide a GUI for your Algorithm you need to use the AlgorithmController interface. For rapid prototyping you can use the DefaultAlgorithmController to automatically generate a GUI from the Configurable interface and set of registered actions.

Note
The constructor of derived classes might perform a check for a valid license and throw a MissingLicenseException in case of failure.
See also
Writing Algorithms, Algorithms, AlgorithmUtils, AlgorithmController
Examples
ExampleAlgorithm.cpp, ExampleAlgorithm.h, SqrtAlgorithm.cpp, SqrtAlgorithm.h, and StreamAlgorithmFactory.cpp.

Classes

struct  Action
 Struct for representing a named action that has been registered with this algorithm. More...
 
struct  FactoryInfo
 Struct describing how an Algorithm was instantiated by the AlgorithmFactory. More...
 

Public Types

enum  Status {
  Unknown = -1 , Success = 0 , Error = 1 , InvalidInput ,
  IncompleteInput , OutOfMemoryHost , OutOfMemoryGPU , UnsupportedGPU ,
  UnknownAction , AbortedByUser , User = 1000
}
 Status codes. More...
 

Public Member Functions

 Algorithm ()
 Default constructor will registers a single "compute" action that calls compute() and returns status().
 
virtual void compute ()=0
 Execute the algorithm.
 
virtual OwningDataList takeOutput ()
 Return any new Data that was created by the Algorithm during the last call to compute().
 
virtual void setProgress (Progress *progress)
 Sets a Progress interface the algorithm can use to notify observers about its computing progress.
 
Progressprogress () const
 Returns the progress interface if set.
 
virtual int status () const
 Indicates the status of the last call to compute().
 
virtual bool survivesDataDeletion (const Data *) const
 Indicates whether the algorithm can handle (partial) deletion of the specified data, by default this checks whether the data is in the input list.
 
const FactoryInfofactoryInfo () const
 Returns the record describing how this Algorithm was instantiated by the AlgorithmFactory.
 
void setFactoryInfo (const FactoryInfo &value)
 Sets the record describing how this Algorithm was instantiated by the AlgorithmFactory.
 
Status runAction (const std::string &id)
 Run the action with name id if it exists.
 
const std::vector< Action > & actions ()
 Get a mapping from Action id to Action as registered in this algorithm.
 
- Public Member Functions inherited from Configurable
virtual void configure (const Properties *p)
 Configure this object instance by de-serializing the given Properties.
 
virtual void configuration (Properties *p) const
 Serialize the current object configuration into the given Properties object.
 
virtual void configureDefaults ()
 Retrieve the properties of this object, replaces values with their defaults and sets it again.
 
void registerParameter (ParameterBase *param)
 Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration().
 
void unregisterParameter (const ParameterBase *param)
 Remove the given Parameter or SubProperty from the list of registered parameters.
 
 Configurable (const Configurable &rhs)
 
 Configurable (Configurable &&rhs) noexcept
 
Configurableoperator= (const Configurable &)
 
Configurableoperator= (Configurable &&) noexcept
 

Static Public Member Functions

static bool createCompatible (const DataList &data, Algorithm **a=nullptr)
 Factory function to check algorithm compatibility with input data and optionally instantiate it.
 

Public Attributes

Signal signalOutputChanged
 Signal should be emitted by Algorithms when their output/result has changed.
 
Signal signalParametersChanged
 Signal should be emitted by Algorithms when their parameter configuration has changed.
 
- Public Attributes inherited from Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.
 

Protected Member Functions

void loadDefaults ()
 
void registerAction (const std::string &id, const std::string &guiName, const std::function< Algorithm::Status(void)> &action)
 Register an action to be run via runAction.
 
template<typename D>
void registerAction (const std::string &id, const std::string &guiName, Algorithm::Status(D::*action)(void))
 Template version of runAction that can be used with a pointer to a member function.
 
void registerAction (const Action &action)
 Register an action.
 

Protected Attributes

std::string m_name
 Algorithm name.
 
Progressm_progress = nullptr
 Non-owing pointer to a progress interface. May be a nullptr.
 
FactoryInfo m_factoryInfo = {}
 Record describing how this algorithm was instantiated by the AlgorithmFactory.
 
int m_status = Status::Unknown
 Algorithm status after last call to compute()
 
std::vector< Actionm_actions
 Map of key given by the id of the action, of the available actions of this algorithm.
 
- Protected Attributes inherited from Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.
 

Member Enumeration Documentation

◆ Status

enum Status

Status codes.

Enumerator
Unknown 

Returned before compute has been called or when algorithm does not implement status interface.

Success 

Computation was successful.

Error 

Generic catch all error status.

InvalidInput 

Some input arguments do not meet the requirements.

IncompleteInput 

Not all required input has been set.

OutOfMemoryHost 

Insufficient main memory, e.g. a std::bad_alloc.

OutOfMemoryGPU 

Insufficient memory on the GPU.

UnsupportedGPU 

This should be returned when for instance the OpenGL version is not high enough or CUDA/OpenCL is not available.

UnknownAction 

This is returned by runAction if an action with the requested id does not exist.

AbortedByUser 

User canceled execution.

User 

Algorithm specific status codes can be defined above this status code.

Constructor & Destructor Documentation

◆ Algorithm()

Algorithm ( )

Default constructor will registers a single "compute" action that calls compute() and returns status().

Exceptions
MissingLicenseExceptionDerived classes may perform a license check during construction and throw in case of failure.

Member Function Documentation

◆ createCompatible()

static bool createCompatible ( const DataList & data,
Algorithm ** a = nullptr )
static

Factory function to check algorithm compatibility with input data and optionally instantiate it.

Every subclass of Algorithm must implement this function in order to be usable by AlgorithmFactory.

Parameters
dataInput data for the algorithm
aOptional output pointer for instantiation through factory. If a is not null, this function will instantiate the algorithm and store the pointer there.
Returns
true if the algorithm is compatible with the input data.

◆ compute()

virtual void compute ( )
pure virtual

Execute the algorithm.

Implemented in AnalyzeMotion, ConvertToMultiLabelMap, GenericASCFromMultiLabelMap, MaskAnatomicalStructure, MoveFaceLabelsToHalfEdges, SmoothMeshes, AnatomyAlgorithm, InspectStyleSheetsAlgorithm, ApplyASCDeformation, ApplyMaskAlgorithm, ApplyRegistration, ApplyWindowLevelAlgorithm, ASCAlgorithm, ASCIoAlgorithm, ASCProjectionAlgorithm, ASCRegistration, AssignMeshTextureAlgorithm, AttachDenseDeformationAlgorithm, AttachTrackingSequenceAlgorithm, AverageImagesAlgorithm, BakeDeformationAlgorithm, BakeMeshDeformationAlgorithm, BakeTransformationAlgorithm, BasicImageProcessing, BicubicBSplineApproximationAlgorithm, BilateralFilterAlgorithm, BinaryMaskToTextAlgorithm, BrainVesselSegmentationAlgorithm, BullseyeVisualizationAlgorithm, CameraCalibrationAlgorithm, CameraCalibrationSetterAlgorithm, CameraRegistrationAlgorithm, CenterlineGraphExtractionAlgorithm, ClFftAlgorithm, CombineASCSetAlgorithm, CombineGraphsAlgorithm, CombineImagesAlgorithm, CombineImagesAsVolumeAlgorithm, CombineIntoTrackedSharedImageSetAlgorithm, CombineMeshesAlgorithm, CombinePointCloudsAlgorithm, CombineSplitVolumesAlgorithm, ComputeCommonGraphFeaturesAlgorithm, ConnectedComponentsAlgorithm, ContrastFilter, CreateGroupedStereoImageStreamAlgorithm, CreatePixelwiseLearningStreamAlgorithm, CreateStereoSharedImageSetAlgorithm, CreateStreamAlgorithm< T, autoOpenDefaultValue, autoConnectDefaultValue, takesArguments >, CreateStreamIoAlgorithm< T, autoOpenDefaultValue, autoConnectDefaultValue >, CropLabelMapAlgorithm, CsvIoAlgorithm, AutoFocusMotionCompensationAlgorithm, BeamHardeningCompensation, CBCTPostProcessing, ConeBeamCalibration, ConeBeamReconLoader, ConeBeamSimulation, ConvertToConeBeamData, CopyConeBeamGeometryAlgorithm, GeometryAlgorithm, GeometryGeneratorOptimizingAlgorithm, GeometrySelfCalibration, Gl2D3DRegistration, GlFourierFilter1D, GridBasedDistortionCorrection, Mesh2D3DRegistrationAlgorithm, MetalArtifactReduction, ProjectionMatrixIoAlgorithm, ProjectionPreProcessingAlgorithm, RadonTransformAlgorithm, ReconstructionAlgorithm, RingArtifactReduction, SyntheticCTFromMeshAlgorithm, XRay2D3DRegistrationAlgorithm, CubicSplineInterpolationAlgorithm, DataHashAlgorithm, DeformableIcpAlgorithm, DeformationEditor, DemonsImageRegistration, DepthMapToMeshAlgorithm, DepthMapToPointCloudAlgorithm, DescriptorsRegistrationAlgorithm, DicomSegIoAlgorithm, DicomIoAlgorithm, DISAFeaturesAlgorithm, DisplacementVisualizer, DisplayRecorderAlgorithm, DistanceTransformAlgorithm, DistanceVolumeAlgorithm, DoseComputationAlgorithm, DrawGraphAlgorithm, EndoscopicToolSegmentationAlgorithm, EvaluateGraphAtImageAlgorithm, EvaluateLinearShapeModel, ExtractDeformationAlgorithm, ExtractImagesFromVolumeAlgorithm, ExtractMeshTextureAlgorithm, ExtractSelection, ExtractTrackingSequence, FeatureDetectionAlgorithm, FeatureMapsRegistrationAlgorithm, FiducialExtractionAlgorithm, FitBoundingBoxAlgorithm, FitShapeAlgorithm, FlowVisualizationAlgorithm, FrameBasedPointCloudIoAlgorithm, FreeFormMeshAlgorithm, FrequencyFilterAlgorithm, GatedLinear4DImageRegistration, GenerateLinearShapeModel, GlFilter, GlFilterSet, GlFreeFormDeformation, GlVesselnessFilter, GlVolumeCompounding, GraphBasedSegmentation, GraphLaplacianAlgorithm, GraphMLIoAlgorithm, GraphReindexingAlgorithm, GraphSmoothingAlgorithm, GraphToPointCloudAlgorithm, HandEyeCalibrationAlgorithm, HDF5IoAlgorithm, HistogramIntensityClusteringAlgorithm, HoughTransformAlgorithm, ConnectionIoAlgorithm, CreateDataIoAlgorithm, CreateDeviceAlgorithm, ImageBasedGatingAlgorithm, ImageComparison, ImageGatingAlgorithm, ImageInpaintingAlgorithm, ImageIoAlgorithm, ImageMattingAlgorithm, ImageRegistration, ImageResamplingAlgorithm, ImageSequenceRegistration, ImageSetAutoCorrelation, ImageSetIoAlgorithm, ImageSharpnessEstimationAlgorithm, ImageStatisticsAlgorithm, ImageTemplateMatchingAlgorithm, ImageUndistortionAlgorithm, ImFusionFileIoAlgorithm, IntensityClusteringAlgorithm, InteractiveSegmentationAlgorithm, InteractiveSegmentationWatershedAlgorithm, InterfileIoAlgorithm, InterlacedToStereoAlgorithm, InterlacedToStereoStreamAlgorithm, IntraOralFilter, InvertDeformationAlgorithm, KinectAzureStreamPlaybackAlgorithm, KinectAzureStreamRecordingAlgorithm, LabelingAlgorithm, LabelMapInterpolationAlgorithm, LabelMapPropagationAlgorithm, LabelMapToContoursAlgorithm, LabelMapToRTStructure, LabelOverlapAlgorithm, LabelsOperationsAlgorithm, LabelStatisticsAlgorithm, LabelsToNarrowBandAlgorithm, LabelToFrameBasedPointCloudAlgorithm, LabelToMeshAlgorithm, LandmarksToImageAlgorithm, LC2Preprocessing, LiftChartOverlayAlgorithm, LinearGridRegistration, LineToIsosurfaceIntersectionAlgorithm, LinkPose, LiveHandEyeCalibrationAlgorithm, LiveHandEyeEvaluationAlgorithm, LiveImageBasedGating, LiveImageBasedGatingTestAlgorithm, LiverDetectionAlgorithm, LiveStereoCalibrationAlgorithm, LiveStreamingAlgorithm, LiveStreamProcessingAlgorithm, LiveTrackingAlgorithm, LiveTrackingPointRegistrationAlgorithm, LoadSpineTemplateAlgorithm, MakeCompatibleLabelMapAlgorithm, MarkAsLabelMapAlgorithm, MarkerDetectionAlgorithm, MarkerGenerationAlgorithm, MarkerHandEyeCalibrationAlgorithm, MaskEditor, MaskFluoroImageAlgorithm, MatchWindowingAlgorithm, Measuring, MergeASCAlgorithm, MergeChannelsAlgorithm, MergeFrameBasedPointCloudsAlgorithm, MergeTrackingSequencesAlgorithm, MeshAlignmentAlgorithm, MeshBooleanOperationsAlgorithm, MeshCollisionDetectionAlgorithm, MeshCreatorAlgorithm, MeshDistanceAlgorithm, MeshIoAlgorithm, MeshMeasurementsAlgorithm, MeshPointCloudCroppingAlgorithm, MeshProcessingAlgorithm, MeshToLabelMapAlgorithm, MeshToPointCloudAlgorithm, MetaImageIoAlgorithm, MinimumSpanningTreeAlgorithm, MirrorRegistrationAlgorithm, AddPositionAsChannelAlgorithm, BoundingBoxSetIoAlgorithm, GenerateBoxSegmentationTrainingDataAlgorithm, GroupToDataItemAlgorithm, KeypointExtractionAlgorithm, KeypointSetIoAlgorithm, LandmarkPredictionAlgorithm, LocalConvolutionalNetworkAlgorithm, LocalizeSegmentAlgorithm, MachineLearningModelAlgorithm, MeshSegmentationAlgorithm, MetricAlgorithm, ModalitySynthesisAlgorithm, MRIBiasFieldCorrectionAlgorithm, OperationsSequenceAlgorithm, MonocularDepthEstimationAlgorithm, MorphologicalInterpolationAlgorithm, MorphologicalOperationsAlgorithm, ConnectionLatencyMeasuringAlgorithm, NiftiIoAlgorithm, NodeToEdgeFeatureAlgorithm, NrrdIoAlgorithm, OpticalFlowAlgorithm, OptimizeParametricDeformationAlgorithm, ParametricDeformableRegistration, ParametricImageRegistration, ParseFolderAndRunWorkspaceAlgorithm, PartitionGraphsAlgorithm, PlaybackAlgorithm, PlaybackStereoImageStreamAlgorithm, PlottingAlgorithm, PointCloudAnalysis, PointCloudFilteringAlgorithm, PointCloudIoAlgorithm, PointCloudMeasuringAlgorithm, PointCloudOverlapAlgorithm, PointCloudPlaneFittingAlgorithm, PointCloudToDepthMapAlgorithm, PointCorrAlgorithm, PointCorrespondencesAlgorithm, PoissonSurfaceReconstructionAlgorithm, PolyDataStreamVisualizationAlgorithm, PolyRigidDeformationAlgorithm, PolyRigidImageRegistration, PoseGraphOptimizationAlgorithm, PropertiesInspector, PruneTerminalPathsAlgorithm, RawImageIoAlgorithm, ReduceToSelection, RegistrationFromPredictionMapAlgorithm, RegistrationInitAlgorithm, RegistrationResultsAlgorithm, RegistrationResultsIoAlgorithm, RemoveModalityAlgorithm, RemoveSpacingAlgorithm, RemoveUnlabelledImagesAlgorithm, ReorderLabelValuesAlgorithm, ReplaceValuesAlgorithm, RGBDCalibrationAlgorithm, RGBDIoAlgorithm, RGBDPlaybackExtractionAlgorithm, RGBDReconstructionAlgorithm, RGBDSequenceIoAlgorithm, RGBDTumSequenceIoAlgorithm, RmseAlgorithm, CreateRobotStreamAlgorithm, FrankaManagerAlgorithm, RandomTrackingSequence, SE3Interpolator, RollingGuidanceFilterAlgorithm, CreateMoveItControlStreamAlgorithm, CreateROSStreamAlgorithm, ROSBagIoAlgorithm, ROSBagSeekableStreamIoAlgorithm, ROSMasterAlgorithm, RTStructureToLabelMap, StructuresViewAlgorithm, SegmentationReductionsAlgorithm, SetGatingMetadataAlgorithm, SetModalityAlgorithm, SetSpacingAlgorithm, SetTimestampsAlgorithm, SharedImageArithmeticAlgorithm, SideBySideToStereoAlgorithm, SideBySideToStereoStreamAlgorithm, SimilarityMeasureTester, SkinSegmentationAlgorithm, SpineBaseAlgorithm, SpineFromMultiLabelAlgorithm, SpineLocalization2DAlgorithm, SpineMeshCurvatureAlgorithm, SpinePolyRigidDeformation, SpinePolyRigidRegistration, SplineLabelPainterAlgorithm, SplineSlicingAlgorithm, SplitASCSetAlgorithm, SplitChannelsAlgorithm, SplitImagesAlgorithm, SplitImageSetAlgorithm, StereoCalibrationSetterAlgorithm, StereoImageExtractSelection, StereoImageReduceToSelection, StereoReconstructionAlgorithm, StereoRectificationAlgorithm, StereoStreamReconstructionAlgorithm, StereoStreamToVideoAlgorithm, StreamAlgorithmExecutor, StreamForwarder, StreamRecorderAlgorithm, SuperpixelsAlgorithm, SuperpixelsFilter, SurfaceRegistration, SurfaceToVolumeRegistrationAlgorithm, SynchronizeMemGlAlgorithm, SyntheticDataAlgorithm, TensorFrequencyFilteringAlgorithm, TensorIoAlgorithm, TensorLocalAverageAlgorithm, TexturingAlgorithm, ToolCalibrationAlgorithm, ToolVisualizationAlgorithm, TrackedSharedImageSetPropertiesAlgorithm, TrackingSequenceIO, TrackingSequenceProcessing, TrackingStreamPropertiesAlgorithm, TrackingStreamVisualizationAlgorithm, TrackingToolCalibrationWizardAlgorithm, TransferGraphFeatureToMeshAlgorithm, TreeIoAlgorithm, BoneSegmentationAlgorithm, BoneSegmentationBaseAlgorithm, ConvertToSweep, ExportCalibrationAlgorithm, ExtractDoppler, FrameGeometryPropertiesAlgorithm, FrameGrabbingAlgorithm, FrameGrabbingConfigEditorAlgorithm, GenerateDataForTrackingEstimation, GeometryDetectionAlgorithm, GlSweepCompounding, ImportCalibrationAlgorithm, LabelCompoundingAlgorithm, LiveGeometryDetectionAlgorithm, LiveSweepRecordingVisualizationAlgorithm, MergeSweepsAlgorithm, NeedleSweepCalibrationAlgorithm, ProbeDeformationAlgorithm, ProcessUltrasoundClip, RawDataAlgorithm, RemoveDuplicateFrames, ScanConversion3D, ScanConversion, SliceToVolumeRegistrationAlgorithm, SweepCalibrationDataIO, SweepCroppingAlgorithm, SweepGlobalInitAlgorithm, SweepMotion, SweepPlaybackAlgorithm, SweepPointCorrAlgorithm, SweepProcessingAlgorithm, SweepPropertiesAlgorithm, SweepToMeshAlgorithm, SweepTrajectoryAnalysisAlgorithm, SyntheticUltrasoundSweepAlgorithm, UltrasoundCalibration, UltrasoundConeCalibrationAlgorithm, UltrasoundDISARegistrationAlgorithm, UltrasoundRegistrationAlgorithm, UltrasoundSimulation, UltrasoundSimulationHybrid, VolumeReslicingAlgorithm, VectorFieldFlowAlgorithm, VertebraDissectionAlgorithm, VertebraDissectionLegacyAlgorithm, VideoIoAlgorithm, VideoStreamExtractionAlgorithm, VideoStreamIoAlgorithm, OpticalFlowAlgorithm, VolumeBasedMeshCurvatureAlgorithm, VolumeBasedMeshRegistrationAlgorithm, VolumeFreeformCroppingAlgorithm, WatershedSegmentationAlgorithm, and ZipIoAlgorithm.

◆ takeOutput()

virtual OwningDataList takeOutput ( )
virtual

Return any new Data that was created by the Algorithm during the last call to compute().

The default implementation will return an empty list.

Note
Since ownership of the data is transferred, you can call this method only once between calls to compute().

Reimplemented in AnalyzeMotion, ConvertToMultiLabelMap, GenericASCFromMultiLabelMap, ApplyMaskAlgorithm, ASCIoAlgorithm, ASCRegistration, AverageImagesAlgorithm, BakeDeformationAlgorithm, BakeMeshDeformationAlgorithm, BakeTransformationAlgorithm, BasicImageProcessing, BicubicBSplineApproximationAlgorithm, BilateralFilterAlgorithm, BinaryMaskToTextAlgorithm, BrainVesselSegmentationAlgorithm, CameraRegistrationAlgorithm, CenterlineGraphExtractionAlgorithm, ClFftAlgorithm, CombineASCSetAlgorithm, CombineGraphsAlgorithm, CombineImagesAlgorithm, CombineImagesAsVolumeAlgorithm, CombineIntoTrackedSharedImageSetAlgorithm, CombineMeshesAlgorithm, CombinePointCloudsAlgorithm, CombineSplitVolumesAlgorithm, ComputeCommonGraphFeaturesAlgorithm, ConnectedComponentsAlgorithm, ContrastFilter, CreateGroupedStereoImageStreamAlgorithm, CreatePixelwiseLearningStreamAlgorithm, CreateStereoSharedImageSetAlgorithm, CreateStreamAlgorithm< T, autoOpenDefaultValue, autoConnectDefaultValue, takesArguments >, CreateStreamIoAlgorithm< T, autoOpenDefaultValue, autoConnectDefaultValue >, CropLabelMapAlgorithm, CsvIoAlgorithm, AutoFocusMotionCompensationAlgorithm, BeamHardeningCompensation, CBCTPostProcessing, ConeBeamReconLoader, ConeBeamSimulation, ConvertToConeBeamData, CopyConeBeamGeometryAlgorithm, Gl2D3DRegistration, GlFourierFilter1D, GridBasedDistortionCorrection, Mesh2D3DRegistrationAlgorithm, MetalArtifactReduction, ProjectionPreProcessingAlgorithm, RadonTransformAlgorithm, ReconstructionAlgorithm, RingArtifactReduction, SyntheticCTFromMeshAlgorithm, XRay2D3DRegistrationAlgorithm, CubicSplineInterpolationAlgorithm, DepthMapToMeshAlgorithm, DepthMapToPointCloudAlgorithm, DicomSegIoAlgorithm, DicomIoAlgorithm, DISAFeaturesAlgorithm, DistanceTransformAlgorithm, DistanceVolumeAlgorithm, DoseComputationAlgorithm, DrawGraphAlgorithm, EndoscopicToolSegmentationAlgorithm, EvaluateLinearShapeModel, ExtractDeformationAlgorithm, ExtractImagesFromVolumeAlgorithm, ExtractMeshTextureAlgorithm, ExtractSelection, ExtractTrackingSequence, FeatureDetectionAlgorithm, FitBoundingBoxAlgorithm, FlowVisualizationAlgorithm, FrameBasedPointCloudIoAlgorithm, FrequencyFilterAlgorithm, GenerateLinearShapeModel, GlFilterSet, GlVesselnessFilter, GlVolumeCompounding, GraphBasedSegmentation, GraphLaplacianAlgorithm, GraphMLIoAlgorithm, GraphReindexingAlgorithm, GraphSmoothingAlgorithm, GraphToPointCloudAlgorithm, HandEyeCalibrationAlgorithm, HDF5IoAlgorithm, HistogramIntensityClusteringAlgorithm, HoughTransformAlgorithm, ConnectionIoAlgorithm, CreateDataIoAlgorithm, CreateDeviceAlgorithm, ImageBasedGatingAlgorithm, ImageComparison, ImageGatingAlgorithm, ImageInpaintingAlgorithm, ImageIoAlgorithm, ImageMattingAlgorithm, ImageResamplingAlgorithm, ImageSetAutoCorrelation, ImageSetIoAlgorithm, ImageUndistortionAlgorithm, ImFusionFileIoAlgorithm, IntensityClusteringAlgorithm, InterfileIoAlgorithm, InterlacedToStereoAlgorithm, InterlacedToStereoStreamAlgorithm, IntraOralFilter, InvertDeformationAlgorithm, LabelMapInterpolationAlgorithm, LabelMapPropagationAlgorithm, LabelMapToContoursAlgorithm, LabelMapToRTStructure, LabelOverlapAlgorithm, LabelsOperationsAlgorithm, LabelsToNarrowBandAlgorithm, LabelToFrameBasedPointCloudAlgorithm, LabelToMeshAlgorithm, LandmarksToImageAlgorithm, LC2Preprocessing, LiveImageBasedGatingTestAlgorithm, LiverDetectionAlgorithm, LiveStereoCalibrationAlgorithm, LiveStreamProcessingAlgorithm, LiveTrackingAlgorithm, LoadSpineTemplateAlgorithm, MakeCompatibleLabelMapAlgorithm, MarkerDetectionAlgorithm, MarkerGenerationAlgorithm, MaskEditor, MaskFluoroImageAlgorithm, Measuring, MergeASCAlgorithm, MergeChannelsAlgorithm, MergeFrameBasedPointCloudsAlgorithm, MergeTrackingSequencesAlgorithm, MeshBooleanOperationsAlgorithm, MeshCreatorAlgorithm, MeshIoAlgorithm, MeshProcessingAlgorithm, MeshToLabelMapAlgorithm, MeshToPointCloudAlgorithm, MetaImageIoAlgorithm, MinimumSpanningTreeAlgorithm, AddPositionAsChannelAlgorithm, BoundingBoxSetIoAlgorithm, GenerateBoxSegmentationTrainingDataAlgorithm, GroupToDataItemAlgorithm, KeypointExtractionAlgorithm, KeypointSetIoAlgorithm, LandmarkPredictionAlgorithm, LocalConvolutionalNetworkAlgorithm, LocalizeSegmentAlgorithm, MachineLearningModelAlgorithm, MeshSegmentationAlgorithm, MetricAlgorithm, ModalitySynthesisAlgorithm, MRIBiasFieldCorrectionAlgorithm, OperationsSequenceAlgorithm, MonocularDepthEstimationAlgorithm, MorphologicalInterpolationAlgorithm, MorphologicalOperationsAlgorithm, NiftiIoAlgorithm, NodeToEdgeFeatureAlgorithm, NrrdIoAlgorithm, OpticalFlowAlgorithm, PartitionGraphsAlgorithm, PlaybackAlgorithm, PlaybackStereoImageStreamAlgorithm, PointCloudFilteringAlgorithm, PointCloudIoAlgorithm, PointCloudOverlapAlgorithm, PointCloudPlaneFittingAlgorithm, PointCloudToDepthMapAlgorithm, PointCorrAlgorithm, PoissonSurfaceReconstructionAlgorithm, PolyRigidDeformationAlgorithm, PoseGraphOptimizationAlgorithm, PruneTerminalPathsAlgorithm, RawImageIoAlgorithm, RegistrationFromPredictionMapAlgorithm, RGBDCalibrationAlgorithm, RGBDIoAlgorithm, RGBDPlaybackExtractionAlgorithm, RGBDReconstructionAlgorithm, RGBDSequenceIoAlgorithm, RGBDTumSequenceIoAlgorithm, CreateRobotStreamAlgorithm, RandomTrackingSequence, SE3Interpolator, RollingGuidanceFilterAlgorithm, CreateMoveItControlStreamAlgorithm, CreateROSStreamAlgorithm, ROSBagIoAlgorithm, ROSBagSeekableStreamIoAlgorithm, ROSMasterAlgorithm, RTStructureToLabelMap, SharedImageArithmeticAlgorithm, SideBySideToStereoAlgorithm, SideBySideToStereoStreamAlgorithm, SimilarityMeasureTester, SkinSegmentationAlgorithm, SpineBaseAlgorithm, SpineFromMultiLabelAlgorithm, SpineLocalization2DAlgorithm, SpineMeshCurvatureAlgorithm, SpinePolyRigidDeformation, SpinePolyRigidRegistration, SplineLabelPainterAlgorithm, SplineSlicingAlgorithm, SplitASCSetAlgorithm, SplitChannelsAlgorithm, SplitImagesAlgorithm, SplitImageSetAlgorithm, StereoImageExtractSelection, StereoReconstructionAlgorithm, StereoRectificationAlgorithm, StereoStreamReconstructionAlgorithm, StreamAlgorithmExecutor, StreamRecorderAlgorithm, SuperpixelsAlgorithm, SuperpixelsFilter, SurfaceToVolumeRegistrationAlgorithm, SyntheticDataAlgorithm, TensorFrequencyFilteringAlgorithm, TensorIoAlgorithm, TensorLocalAverageAlgorithm, TexturingAlgorithm, TrackingSequenceIO, TrackingSequenceProcessing, TreeIoAlgorithm, BoneSegmentationAlgorithm, BoneSegmentationBaseAlgorithm, ConvertToSweep, ExtractDoppler, GenerateDataForTrackingEstimation, GlSweepCompounding, LabelCompoundingAlgorithm, MergeSweepsAlgorithm, ProbeDeformationAlgorithm, ProcessUltrasoundClip, RawDataAlgorithm, ScanConversion3D, ScanConversion, SweepCroppingAlgorithm, SweepGlobalInitAlgorithm, SweepPlaybackAlgorithm, SweepProcessingAlgorithm, SweepToMeshAlgorithm, SweepTrajectoryAnalysisAlgorithm, SyntheticUltrasoundSweepAlgorithm, UltrasoundSimulation, UltrasoundSimulationHybrid, VolumeReslicingAlgorithm, VectorFieldFlowAlgorithm, VertebraDissectionAlgorithm, VertebraDissectionLegacyAlgorithm, VideoIoAlgorithm, VideoStreamExtractionAlgorithm, VideoStreamIoAlgorithm, OpticalFlowAlgorithm, VolumeBasedMeshCurvatureAlgorithm, VolumeFreeformCroppingAlgorithm, WatershedSegmentationAlgorithm, and ZipIoAlgorithm.

◆ setProgress()

virtual void setProgress ( Progress * progress)
inlinevirtual

Sets a Progress interface the algorithm can use to notify observers about its computing progress.

Reimplemented in ConeBeamReconLoader, ParametricImageRegistration, and UltrasoundSimulationHybrid.

◆ status()

virtual int status ( ) const
virtual

Indicates the status of the last call to compute().

Reimplemented in DicomIoAlgorithm, and IoAlgorithm.

◆ survivesDataDeletion()

virtual bool survivesDataDeletion ( const Data * ) const
virtual

◆ factoryInfo()

const FactoryInfo & factoryInfo ( ) const
inline

Returns the record describing how this Algorithm was instantiated by the AlgorithmFactory.

May be empty if Algorithm was instantiated manually.

◆ runAction()

Status runAction ( const std::string & id)

Run the action with name id if it exists.

Returns
Status::UnknownAction if an action with the specified id does not exist, otherwise returns the returned value from the action.

◆ registerAction()

void registerAction ( const std::string & id,
const std::string & guiName,
const std::function< Algorithm::Status(void)> & action )
protected

Register an action to be run via runAction.

These actions can be called from python bindings and show up in the DefaultAlgorithmController. The third argument is copied. If an action with the specified id already exists, calling this function overwrites it.


The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close