![]() |
ImFusion SDK 4.3
|
#include <ImFusion/Base/ApplyMaskAlgorithm.h>
Algorithm for applying a mask and a cropping to an image. More...
Inheritance diagram for ApplyMaskAlgorithm:Algorithm for applying a mask and a cropping to an image.
Public Member Functions | |
| ApplyMaskAlgorithm (SharedImageSet *imgIn, SharedImage *mask) | |
| Main constructor of the algorithm. | |
| ApplyMaskAlgorithm (SharedImageSet *imgIn, std::shared_ptr< Mask > mask) | |
| Main Constructor for images that have a mask embedded Mask is supplied explicitly to make this requirement strict. | |
| ~ApplyMaskAlgorithm () override | |
| Destructor of the algorithm. | |
| void | setCreateNew (bool flag) |
| Specify whether a new image should be created (true by default) | |
| void | setAutoCropping (bool flag) |
| Specify whether the images should be cropped automatically after masking (true by default) | |
| void | setElevateInside (bool flag) |
| If enabled, zero intensity values inside the mask are elevated to one (false by default) | |
| void | setAboveThreshold (bool flag) |
| If enabled, values above threshold are kept (true by default) | |
| void | configure (const Properties *p) override |
| Set one or multiple properties. | |
| void | configuration (Properties *p) const override |
| Retrieve the properties of this object. | |
| void | compute () override |
| Compute the result. | |
| std::pair< std::shared_ptr< SharedImage >, DataComponentList > | processImage (const SharedImage &image, const DataComponentList &components) const override |
| Processes a single image without modifying the algorithm's status. | |
| OwningDataList | takeOutput () override |
| If the algorithm creates new image data, it has to be transferred here. | |
| std::pair< std::optional< vec3i >, std::optional< vec3i > > | cropping () |
| Retrieve the cropping bounds if image was cropped. | |
Public Member Functions inherited from Algorithm | |
| Algorithm () | |
| Default constructor will registers a single "compute" action that calls compute() and returns status(). | |
| virtual void | setProgress (Progress *progress) |
| Sets a Progress interface the algorithm can use to notify observers about its computing progress. | |
| Progress * | progress () 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 FactoryInfo & | factoryInfo () 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 | 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 | |
| Configurable & | operator= (const Configurable &) |
| Configurable & | operator= (Configurable &&) noexcept |
Public Member Functions inherited from SequentialImageProcessor | |
| virtual void | setSequentialMode (bool b) |
| This method should be called to let the algorithm know that it should only run in sequential mode. | |
| virtual bool | isSequentialMode () const |
| Returns of the algorithm should only run in sequential mode. | |
Static Public Member Functions | |
| static bool | createCompatible (const DataList &data, Algorithm **a) |
| If data is compatible with algorithm return true. If a is not zero, create algorithm with input data. | |
Static Public Member Functions inherited from Algorithm | |
| static bool | createCompatible (const DataList &data, Algorithm **a=nullptr) |
| Factory function to check algorithm compatibility with input data and optionally instantiate it. | |
Protected Attributes | |
| SharedImageSet * | m_inImg |
| SharedImage * | m_mask |
| std::unique_ptr< SharedImageSet > | m_outImg = nullptr |
| std::unique_ptr< SharedImage > | m_optionalMask |
| std::optional< vec3i > | m_cropUp |
| std::optional< vec3i > | m_cropDown |
| bool | m_createNew = true |
| Whether to compute the result in-place or not. | |
| bool | m_autoCrop = true |
| Whether to automatically crop the images. | |
| bool | m_elevateInside = false |
| Elevate pixels inside the mask from zero to one. | |
| double | m_thresholdValue = 0.5 |
| Threshold value used for the mask image. | |
| bool | m_aboveThreshold = true |
| If true, valid pixels have mask intensities higher than the threshold. | |
| double | m_outsideValue = 0 |
| The value to be set in the 'outside' of the mask. | |
Protected Attributes inherited from Algorithm | |
| std::string | m_name |
| Algorithm name. | |
| Progress * | m_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< Action > | m_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< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
Protected Attributes inherited from SequentialImageProcessor | |
| bool | m_isSequentialMode = false |
| Flag to determine if algorithm is running in sequential mode. | |
Additional Inherited Members | |
Public Types inherited from Algorithm | |
| enum | Status { Unknown = -1 , Success = 0 , Error = 1 , InvalidInput , IncompleteInput , OutOfMemoryHost , OutOfMemoryGPU , UnsupportedGPU , UnknownAction , AbortedByUser , User = 1000 } |
| Status codes. More... | |
Public Attributes inherited from Algorithm | |
| 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 inherited from Algorithm | |
| 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. | |
|
overridevirtual |
Set one or multiple properties.
Reimplemented from Configurable.
|
overridevirtual |
Retrieve the properties of this object.
Reimplemented from Configurable.
|
overridevirtual |
Compute the result.
Implements Algorithm.
|
overridevirtual |
Processes a single image without modifying the algorithm's status.
For performance reasons, it is possible to do this in-place, i.e. with m_createNew=false, in which case the input image is const-cast and modified direcly. Proceed with care. If you intend to run this algorithm with the StreamAlgorithmExecutor, ensure that m_createNew=true (default).
Implements SequentialImageProcessor.
|
overridevirtual |
If the algorithm creates new image data, it has to be transferred here.
Reimplemented from Algorithm.