MeVisLab Toolbox Reference
|
The class to apply rank based kernel filters images. More...
#include <mlRankFilter.h>
Public Types | |
enum | RankFilterTypes { ID = 0 , RANK_FILTER , MIN_FILTER , MEDIAN_FILTER , MAX_FILTER , MAXMINUSMIN_FILTER , RANK_INDEX , NUM_RANK_FILTER_TYPES } |
The following rank based filters are available to filter line in an image: More... | |
![]() | |
enum | InputImageRefExtent { Overlap = 0 , Input0_ExtWithoutFill , Input0_ExtWithFill , MaxExtentsWithoutFill , MaxExtentsWithFill , NumImageRefExtents } |
Enumerator specifying the calculation mode for the extent of the reference extent of the input image. More... | |
![]() | |
enum | PERMITTED_TYPES { ONLY_SCALAR_TYPES , ONLY_DEFAULT_TYPES , ALL_REGISTERED_TYPES } |
See documentation of setVoxelDataTypeSupport. More... | |
enum | INPUT_STATE { DISCONNECTED = 0 , CONNECTED_BUT_INVALID = 1 , CONNECTED_AND_VALID = 2 , CONNECTED_BUT_NEEDS_UPDATE = 3 } |
See documentation of handleInput. More... | |
enum | INPUT_HANDLE { INVALIDATE = 0 , ALLOW_INVALID_INPUT = 2 } |
See documentation of handleInput. More... | |
![]() | |
enum | PersistenceInterface { PersistenceByString , PersistenceByTreeNode , PersistenceByStream } |
This enum describes the different persistence interfaces available. More... | |
Public Member Functions | |
RankFilter () | |
Constructor. More... | |
Fields to specify the filter algorithm and the rank. | |
EnumField * | getRankFilterFld () |
Specifies the rank based filter algorithm. Default is mlMedian. More... | |
IntField * | getRankFld () |
Specifies the rank level for the 'Rank' algorithm. Default is 0. More... | |
![]() | |
KernelModule (int inputNum=1, int outputNum=1) | |
Constructor. More... | |
IntField * | getKernelXFld () const |
X extent of kernel. The field name will be "kernelX". Field default is 3 if created. More... | |
IntField * | getKernelYFld () const |
Y extent of kernel. The field name will be "kernelY". Field default is 3 if created. More... | |
IntField * | getKernelZFld () const |
Z extent of kernel. The field name will be "kernelZ". Field default is 1 if created. More... | |
IntField * | getKernelCFld () const |
C extent of kernel. The field name will be "kernelC". Field default is 1 if created. More... | |
IntField * | getKernelTFld () const |
T extent of kernel. The field name will be "kernelT". Field default is 1 if created. More... | |
IntField * | getKernelUFld () const |
U extent of kernel. The field name will be "kernelU". Field default is 1 if created. More... | |
BoolField * | getMakeSphericalFld () const |
Controls whether kernel is circular or rectangular (in 6D). More... | |
StringField * | getKernelInfoFld () const |
DoubleField * | getKernelElementsSumFld () const |
If created this methods returns the pointer to the field containing the sum of all kernel elements, otherwise NULL is returned. More... | |
IntField * | getNumKernelElementsFld () const |
If created this field contains the number of voxels in the kernel. More... | |
BoolField * | getNormalizeFld () const |
StringField * | getExternalKernelFld () const |
BoolField * | getUseExternalKernelFld () const |
A field enabling the usage of the _externalKernelFld if true. More... | |
StringField * | getKernelOutputFld () const |
A field containing the current kernel. More... | |
DoubleField * | getImageIntervalMinFld () const |
DoubleField * | getImageIntervalMaxFld () const |
A field containing the maximum limit of an interval specifying the values of voxels to be filtered. More... | |
BoolField * | getUseImageIntervalFld () const |
A field enabling the usage of the _imageIntervalMinFld and _imageIntervalMaxFld if true. More... | |
DoubleField * | getKernelIntervalMinFld () const |
DoubleField * | getKernelIntervalMaxFld () const |
A field containing the maximum limit of an interval specifying the values of voxels under kernel elements to be used in a kernel operation. More... | |
BoolField * | getUseKernelIntervalFld () const |
A field enabling the usage of the _kernelIntervalMinFld and _kernelIntervalMaxFld if true. More... | |
BoolField * | getAutoCalcMinMaxFld () const |
NotifyField * | getSetAutoMinMaxFld () const |
Field which assigns the current settings of automatically determined minimum/maximum values of already calculated pages to the output image. More... | |
DoubleField * | getOutputMinFld () const |
DoubleField * | getOutputMaxFld () const |
The maximum value used for the output image if _useAutoMinMax is on. More... | |
BoolField * | getUseMinMaxFld () const |
If enabled then contents of _outputMinFld and _outputMaxFld will be used as minimum and maximum values of the output image. More... | |
![]() | |
Kernel & | getKernel () |
const Kernel & | getConstKernel () const |
Method to access the kernel as constant object. See also getKernel() . More... | |
EnumField * | getBorderHandlingFld () const |
DoubleField * | getFillValueFld () const |
The field value is value written in input or output image borders where a border handling requires filling with a fill value. More... | |
EnumField & | getReferenceExtentModeFld () const |
Returns how the reference extent for input images is calculated; valid values are InputImageRefExtent (except of NumImageRefExtents) and default is Overlap. More... | |
![]() | |
MLMetaProfilePtr & | getMetaProfile () const |
Returns the metaprofile for the base operator. More... | |
const char * | getTypeNameFast () const |
Macro to declare methods for the ML runtime type system (see mlRuntimeSubClass.h). More... | |
Module (int numInputImages, int numOutputImages) | |
Constructor: Initializes numInputImages input images and numOutputImages output images of the module. More... | |
~Module () override | |
Destructor: Destroys this module. More... | |
InputConnectorField * | getInputImageField (MLint i) const |
Returns the field representing input image i . i must be a valid index. More... | |
OutputConnectorField * | getOutputImageField (MLint i=0) const |
Returns the field representing output image i . i must be a valid index. More... | |
MLint | getNumInputImages () const |
Returns the number of input images of this module. More... | |
MLint | getNumOutputImages () const |
Returns the number of output images of this module. More... | |
PagedImage * | getOutputImage (MLint outputIndex=0) const |
Returns the output image outputIndex . The index needs to be in the range [0, getNumOutputImages()-1]. More... | |
InputConnectorField * | addInputImage (const char *name=nullptr) |
Adds a new input image with name to the module. More... | |
OutputConnectorField * | addOutputImage (const char *name=nullptr) |
Adds a new output image with name to the module. More... | |
PagedImage * | getInputImage (MLint inputIndex, bool getReal=false) const |
Returns the output image of the module connected to input inputIndex . More... | |
PagedImage * | getUpdatedInputImage (MLint inputIndex, bool getReal=false) const |
Convenience method for a safe access to the input image at index inputIndex . More... | |
MLErrorCode | processAllPages (int outputIndex=-1, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr) |
Processes all pages of a module for easy implementation of page-based image processing of complete images. More... | |
MLErrorCode | processAllPages (ProcessAllPagesHandler &handler, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr) |
Processes input images with a ProcessAllPagesHandler handler on a temporary output image (which allocates no data). More... | |
MLErrorCode | processMissingPages (int outputIndex=0, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr) |
Processes all missing pages on the given output image. More... | |
void | clearOutputImage (MLint i=0) |
Clears cached output image pages of output image i . More... | |
MLint | getOutputImageInplace (MLint outputIndex=0) const |
Returns the optimization flag: returns the index of input image whose input tile is used also as output page for output outputIndex in calculateOutputSubImage() (instead of allocating its own memory). More... | |
MLint | getBypass (MLint outputIndex=0) const |
Returns the currently bypass index or -1 if bypassing if disabled (default). More... | |
THREAD_SUPPORT | getThreadSupport () const |
Returns the multithreading mode supported by this module, default is NO_THREAD_SUPPORT. More... | |
bool | areRecursiveHandleNotificationsPermitted () const |
Returns whether recursive entries in handleNotification are permitted. More... | |
MLint | getHandleNotificationEntryCounter () const |
A counter returning the current number of (recursive re-)entries in handleNotification. More... | |
PERMITTED_TYPES | getVoxelDataTypeSupport () const |
Returns the current state of supported voxel datatypes. More... | |
bool | isSupportedVoxelDataType (MLDataType dt) const |
Checks whether a given data type is supported on the module as configured with setVoxelDataTypeSupport. More... | |
virtual INPUT_HANDLE | handleInput (int, INPUT_STATE) const |
This method may be reimplemented to enable support for invalid input images on the module. More... | |
INPUT_STATE | getInputState (MLint index) |
Returns the current state of the input connection. More... | |
INPUT_STATE | getUpdatedInputState (MLint index) |
Returns the updated state of the input image by calling updateImageProperties(index) and returning getInputState(index) afterwards. More... | |
bool | isInputImageField (Field *field) const |
Returns whether the given field is an input image field. More... | |
void | touchOutputImageFields () const |
Touches all output image fields to indicate that the images have changed. More... | |
virtual void | beginSaveFields () |
Called before all fields data contents of this modules are saved. More... | |
virtual void | endSaveFields () |
Called after saving all field contents of this module. More... | |
![]() | |
FieldContainer () | |
Constructor. More... | |
~FieldContainer () override | |
Destructor: Deletes all added fields. More... | |
std::string | whoAmI (bool withInstanceName=true) const |
Returns the type and the instance name of format 'ClassTypeName(instanceName)' if the instance name is not empty and withInstanceName is true . More... | |
Field * | addField (const char *name, const char *type, const char *value) |
Adds a new field with name name , type type , and value value (encoded as string) to the container. More... | |
Field * | addField (Field *field) |
Adds a field , the ownership of the field is passed to the FieldContainer. More... | |
BoolField * | addBool (const char *name) |
Creates a BoolField with name and adds it to the container. Default value is false . More... | |
BoolField * | addBool (const char *name, bool value) |
Creates a BoolField with name and adds it to the container. More... | |
IntField * | addInt (const char *name) |
Creates an IntField with name and adds it to the container. Default value is 0. More... | |
IntField * | addInt (const char *name, MLint value) |
Creates an IntField with name and adds it to the container. More... | |
EnumField * | addEnum (const char *name, const char *const *enumerationItemNames, MLint numEnumerationItems) |
Creates an EnumField field with name and adds it to the container. More... | |
EnumField * | addEnum (const char *name, const std::vector< std::string > &enumerationItemNames) |
Creates an EnumField field with name and adds it to the container. More... | |
template<typename EnumType > | |
TypedEnumField< EnumType > * | addEnum (const char *name, const EnumValues< EnumType > &values, EnumType initialValue) |
Creates a TypedEnumField field with name and adds it to the container. More... | |
FloatField * | addFloat (const char *name) |
Creates a FloatField with name and adds it to the container. Default value is 0.f. More... | |
FloatField * | addFloat (const char *name, float value) |
Creates a FloatField with name and adds it to the container. More... | |
ProgressField * | addProgress (const char *name) |
Creates a float ProgressField with name and adds it to the container. Default value is 0.f. More... | |
ProgressField * | addProgress (const char *name, float value) |
Creates a float ProgressField with name and adds it to the container. More... | |
DoubleField * | addDouble (const char *name) |
Creates a DoubleField with name and adds it to the container. Default value is 0. More... | |
DoubleField * | addDouble (const char *name, double value) |
Creates a DoubleField with name and adds it to the container. More... | |
StringField * | addString (const char *name) |
Creates a StringField with name and adds it to the container. Default value is empty string. More... | |
StringField * | addString (const char *name, const std::string &value) |
Creates a StringField with name and adds it to the container. More... | |
NotifyField * | addNotify (const char *name) |
Creates a NotifyField field with name and adds it to the container. More... | |
TriggerField * | addTrigger (const char *name) |
Creates a TriggerField field with name and adds it to the container. More... | |
BaseField * | addBase (const char *name) |
Creates a Base field with name and adds it to the container. Default value is NULL. More... | |
BaseField * | addBase (const char *name, Base *value) |
Creates a Base field with name and adds it to the container. More... | |
BaseField * | addBase (const char *name, const RefCountedBasePtr &value) |
Creates a Base field with name and adds it to the container. Sets the value from intrusive pointer. More... | |
template<typename T > | |
BaseField * | addBaseWithAllowedType (const char *name, T *value=nullptr) |
As above, but also sets the allowed type of the field. More... | |
template<typename T > | |
BaseField * | addBaseWithAllowedType (const char *name, const ::boost::intrusive_ptr< T > &value) |
As above, but also sets the allowed type of the field. More... | |
template<typename T > | |
TypedBaseField< T > * | addTypedBase (const char *name) |
Creates a TypedBaseField with name and adds it to the container. Default value is NULL. More... | |
template<typename T > | |
TypedBaseField< T > * | addTypedBase (const char *name, T *value) |
Creates a TypedBaseField with name and adds it to the container. More... | |
template<typename T > | |
TypedBaseField< T > * | addTypedBase (const char *name, const ::boost::intrusive_ptr< T > &value) |
Creates a TypedBaseField with name and adds it to the container. Sets the value from intrusive pointer. More... | |
SoNodeField * | addSoNode (const char *name) |
Creates a SoNodeField with name and adds it to the container. Default value is NULL. More... | |
SoNodeField * | addSoNode (const char *name, SoNode *value) |
Creates a SoNodeField with name and adds it to the container. More... | |
PointerField * | addPointer (const char *name) |
Creates a PointerField with name and adds it to the container. More... | |
Vector2Field * | addVector2 (const char *name) |
Creates a Vector2Field with name and adds it to the container. More... | |
Vector2Field * | addVector2 (const char *name, const Vector2 &value) |
Creates a Vector2Field with name and adds it to the container. More... | |
Vector2Field * | addVector2 (const char *name, double x, double y) |
Creates a Vector2Field with name and adds it to the container. More... | |
Vector3Field * | addVector3 (const char *name) |
Creates a Vector3Field with name and adds it to the container. More... | |
Vector3Field * | addVector3 (const char *name, const Vector3 &value) |
Creates a Vector3Field with name and adds it to the container. More... | |
Vector3Field * | addVector3 (const char *name, double x, double y, double z) |
Creates a Vector3Field with name and adds it to the container. More... | |
Vector4Field * | addVector4 (const char *name) |
Creates a Vector4Field with name and adds it to the container. More... | |
Vector4Field * | addVector4 (const char *name, const Vector4 &value) |
Creates a Vector4Field with name and adds it to the container. More... | |
Vector4Field * | addVector4 (const char *name, double x, double y, double z, double w) |
Creates a Vector4Field with name and adds it to the container. More... | |
Vector5Field * | addVector5 (const char *name) |
Creates a Vector5Field with name and adds it to the container. More... | |
Vector5Field * | addVector5 (const char *name, const Vector5 &value) |
Creates a Vector5Field with name and adds it to the container. More... | |
Vector6Field * | addVector6 (const char *name) |
Creates a Vector6Field with name and adds it to the container. More... | |
Vector6Field * | addVector6 (const char *name, const Vector6 &value) |
Creates a Vector6Field with name and adds it to the container. More... | |
Vector10Field * | addVector10 (const char *name) |
Creates a Vector10Field with name and adds it to the container. More... | |
Vector10Field * | addVector10 (const char *name, const Vector10 &value) |
Creates a Vector10Field with name and adds it to the container. More... | |
ImageVectorField * | addImageVector (const char *name) |
Creates a ImageVectorField with name and adds it to the container. More... | |
ImageVectorField * | addImageVector (const char *name, const ImageVector &value) |
Creates a ImageVectorField with name and adds it to the container. More... | |
ImageVectorField * | addImageVector (const char *name, MLint x, MLint y, MLint z, MLint c, MLint t, MLint u) |
Creates a ImageVectorField with name and adds it to the container. More... | |
SubImageBoxField * | addSubImageBox (const char *name) |
Creates a SubImageBoxField with name and adds it to the container. More... | |
SubImageBoxField * | addSubImageBox (const char *name, const SubImageBox &value) |
Creates a SubImageBoxField with name and adds it to the container. More... | |
SubImageBoxdField * | addSubImageBoxd (const char *name) |
Creates a SubImageBoxd field with name and adds it to the container. More... | |
SubImageBoxdField * | addSubImageBoxd (const char *name, const SubImageBoxd &value) |
Creates a SubImageBoxd field with name and adds it to the container. More... | |
ColorField * | addColor (const char *name) |
Creates a ColorField with name and adds it to the container. More... | |
ColorField * | addColor (const char *name, float r, float g, float b) |
Creates a ColorField with name and adds it to the container. More... | |
ColorField * | addColor (const char *name, const Vector3 &value) |
Creates a ColorField with name and adds it to the container. More... | |
PlaneField * | addPlane (const char *name) |
Creates a PlaneField with name and adds it to the container. More... | |
PlaneField * | addPlane (const char *name, double f0, double f1, double f2, double f3) |
Creates a PlaneField with name and adds it to the container. More... | |
PlaneField * | addPlane (const char *name, const Plane &value) |
Creates a PlaneField with name and adds it to the container. More... | |
RotationField * | addRotation (const char *name) |
Creates a RotationField with name and adds it to the container. More... | |
RotationField * | addRotation (const char *name, const Rotation &value) |
Creates a RotationField with name and adds it to the container. More... | |
Matrix2Field * | addMatrix2 (const char *name) |
Creates a Matrix2Field with name and adds it to the container. More... | |
Matrix2Field * | addMatrix2 (const char *name, const Matrix2 &value) |
Creates a Matrix2Field with name and adds it to the container. More... | |
Matrix3Field * | addMatrix3 (const char *name) |
Creates a Matrix3Field with name and adds it to the container. More... | |
Matrix3Field * | addMatrix3 (const char *name, const Matrix3 &value) |
Creates a Matrix3Field with name and adds it to the container. More... | |
Matrix4Field * | addMatrix4 (const char *name) |
Creates a Matrix4Field with name and adds it to the container. More... | |
Matrix4Field * | addMatrix4 (const char *name, const Matrix4 &value) |
Creates a Matrix4Field with name and adds it to the container. More... | |
Matrix5Field * | addMatrix5 (const char *name) |
Creates a Matrix5Field with name and adds it to the container. More... | |
Matrix5Field * | addMatrix5 (const char *name, const Matrix5 &value) |
Creates a Matrix5Field with name and adds it to the container. More... | |
Matrix6Field * | addMatrix6 (const char *name) |
Creates a Matrix6Field with name and adds it to the container. More... | |
Matrix6Field * | addMatrix6 (const char *name, const Matrix6 &value) |
Creates a Matrix6Field with name and adds it to the container. More... | |
MatrixField * | addMatrix (const char *name) |
Creates a MatrixField with name and adds it to the container. More... | |
MatrixField * | addMatrix (const char *name, const Matrix4 &value) |
Creates a MatrixField with name and adds it to the container. More... | |
MLDataTypeField * | addMLDataType (const char *name) |
Creates a MTDataTypeField with name and adds it to the container. More... | |
MLDataTypeField * | addMLDataType (const char *name, MLDataType value) |
Creates a MTDataTypeField with name and adds it to the container. More... | |
UniversalTypeField * | addUniversalType (const char *name) |
Creates an UniversalTypeField field with name and adds it to the container. More... | |
IntListField * | addIntList (const char *name) |
Creates an IntListField field with name and empty list value and adds it to the container. More... | |
IntListField * | addIntList (const char *name, const std::vector< MLint > &value) |
Creates an IntListField field with name and given list value and adds it to the container. More... | |
DoubleListField * | addDoubleList (const char *name) |
Creates an DoubleListField field with name and empty list value and adds it to the container. More... | |
DoubleListField * | addDoubleList (const char *name, const std::vector< double > &value) |
Creates an DoubleListField field with name and given list value and adds it to the container. More... | |
Vector2ListField * | addVector2List (const char *name) |
Creates an Vector2ListField field with name and empty list value and adds it to the container. More... | |
Vector2ListField * | addVector2List (const char *name, const std::vector< Vector2 > &value) |
Creates an Vector2ListField field with name and given list value and adds it to the container. More... | |
Vector3ListField * | addVector3List (const char *name) |
Creates an Vector3ListField field with name and empty list value and adds it to the container. More... | |
Vector3ListField * | addVector3List (const char *name, const std::vector< Vector3 > &value) |
Creates an Vector3ListField field with name and given list value and adds it to the container. More... | |
Vector4ListField * | addVector4List (const char *name) |
Creates an Vector4ListField field with name and empty list value and adds it to the container. More... | |
Vector4ListField * | addVector4List (const char *name, const std::vector< Vector4 > &value) |
Creates an Vector4ListField field with name and given list value and adds it to the container. More... | |
size_t | getNumFields () const |
Returns the number of added fields. More... | |
bool | hasField (const std::string &name) const |
Returns true if the field with name name exists; otherwise, false is returned. More... | |
Field * | getField (const std::string &name) const |
Returns the pointer to the field with name name . More... | |
Field * | getField (MLint index) const |
Returns pointer of field at index if it exists. If not, -1 is returned. More... | |
MLint | getFieldIndex (Field *field) const |
Returns index of field if it exists. If not, -1 is returned. More... | |
void | setFieldStringValue (const std::string &name, const std::string &value) |
Sets the value of the field with name if it exists. More... | |
std::string | getFieldStringValue (const std::string &name) const |
Returns the string value of the field with name if it is found. More... | |
virtual void | deactivateAttachments () |
Disables notification handling, i.e., all fields of this module will not send notifications to attached sensors and fields anymore if their values are set or changed. More... | |
![]() | |
Base () | |
Constructor. More... | |
virtual | ~Base () |
Destructor. More... | |
virtual Base * | deepCopy () const |
Creates a deep copy of the given object. More... | |
bool | isOfAllowedType (const std::vector< const RuntimeType * > &types) const |
Checks whether this object's type is equal to or derived from one of the types given in the argument. More... | |
virtual bool | isRefCountedBase () const |
Returns whether the instance is derived from RefCountedBase. More... | |
virtual std::string | detailString () const |
Returns a string describing this object. More... | |
virtual bool | implementsPersistence (PersistenceInterface) const |
Override this method to declare which persistence interfaces are implemented by your derived class. More... | |
virtual std::string | persistentState () const |
Returns a string describing the object's internal state. More... | |
virtual void | setPersistentState (const std::string &state) |
Restores the object's internal state from a string that had been previously generated using persistentState(). More... | |
virtual void | addStateToTree (TreeNode *) const |
Attaches the object state as children of the given parent node. More... | |
virtual void | readStateFromTree (TreeNode *) |
Reads the object state from the children of the given parent node. More... | |
virtual void | writeTo (AbstractPersistenceOutputStream *) const |
Writes the objects state to the data stream object. More... | |
virtual void | readFrom (AbstractPersistenceInputStream *, int) |
Reads the objects state from the data stream object. More... | |
Static Public Attributes | |
static const char *const | RankFilterNames [] |
Strings names for rank based filters. More... | |
Protected Member Functions | |
void | calculateOutputImageProperties (int outputIndex, PagedImage *outputImage) override |
Computes the output image properties (e.g. the extents) for output outIndex . More... | |
void | handleNotification (Field *field) override |
Called when a parameter field is changed. More... | |
void | activateAttachments () override |
Called when loading has finished. More... | |
CALC_ROW_H () | |
The implementation of the calculateOutputSubImage() method overloaded from Module is done in this macro. More... | |
template<typename DATATYPE > | |
void | calcRow (MLsoffset *indexTab, size_t indexTabSize, MLsoffset srcVoxelOffset, size_t numVox, DATATYPE *inCursor, DATATYPE *outCursor, const ImageVector &) |
In this virtual template method the filtering of one row needs to be implemented. More... | |
![]() | |
virtual void | _userKernelPreUpdate () |
Typical method to be overloaded by derived modules to apply kernel changes. More... | |
virtual void | _userKernelPostUpdate () |
Typical method to be overloaded by derived modules to apply kernel changes. More... | |
virtual void | _createKernelExtentFields (int numDim=6, const ImageVector &defaultExt=ImageVector(3, 3, 1, 1, 1, 1)) |
Creates the fields _kernelXFld , ... More... | |
virtual void | _validateKernelExtents () |
Checks all existing kernel extent fields and corrects all to values >= 0 if necessary. More... | |
virtual void | _createMakeSphericalField (bool defaultVal=false) |
Creates a bool field which enables/disables the usage of a connected kernel. More... | |
virtual void | _createNormalizeField (bool defaultVal=false) |
Creates a bool field which enables/disables the automatic normalization of the kernel after each change. More... | |
virtual void | _createMinMaxCalcFields (bool defaultValue=false, bool createSetOutputMinMax=false) |
Creates a toggle field which enables the scan of calculated output pages for min/max values if enabled. More... | |
virtual void | _createMinMaxFields (MLdouble minVal=0, MLdouble maxVal=0, bool defaultValue=false) |
Creates a minimum and a maximum field containing minimum/maximum values for the output image. More... | |
virtual void | _createExternalKernelFields (bool createUseToggle=false, bool defaultVal=false) |
Creates a kernel input field and an information field. More... | |
virtual void | _createKernelOutputField () |
Creates a kernel output field. More... | |
virtual void | _createImageIntervalFields (MLdouble min=0, MLdouble max=1024, bool createToggle=false, bool useIt=false) |
Creates two limit fields to specify an interval and - if createToggle is passed as true - a toggle to enable/disable interval usage. More... | |
virtual void | _createKernelIntervalFields (MLdouble min=0, MLdouble max=1024, bool createToggle=false, bool useIt=false) |
Creates two limit fields to specify an interval and - if createToggle is passed as true - a toggle to enable/disable interval usage. More... | |
virtual void | _createKernelInfoField () |
Creates an information field about the current kernel and its creation process. More... | |
virtual void | _createNumKernelElementsField () |
Creates an information field which will contain the number of kernel elements. More... | |
virtual void | _createKernelElementsSumField () |
Creates an information field which will contain the sum of all kernel elements. More... | |
virtual void | _updateKernel () |
Convenience routine to call the typically used _updateKernel() functionality, e.g. More... | |
virtual void | _updateKernel (bool permitExtentChanges) |
This is the method to update the kernel, it should be called if the kernel requires an update, e.g. More... | |
virtual void | _updateKernelOutputField () |
Updates the kernel output to the value of the kernel if the _kernelOutputFld is defined. More... | |
virtual std::string | _composeKernelInfo (bool valid=true) const |
Create a string containing all important kernel information. More... | |
void | _setImageInterval (MLdouble minVal=-DBL_MAX, MLdouble maxVal=DBL_MAX) |
Update private test members for fast image interval testings. More... | |
void | _setKernelInterval (MLdouble minVal=-DBL_MAX, MLdouble maxVal=DBL_MAX) |
Update private test members for fast kernel testings. More... | |
bool | _isInImageInterval (MLdouble v) const |
Test whether the value v is within image interval. More... | |
bool | _isInKernelInterval (MLdouble v) const |
Test whether the value v is within kernel interval. More... | |
void | calculateOutputImageProperties (int outputIndex, PagedImage *outputImage) override |
Computes the output image properties for output outIndex . More... | |
void | calcOutSubImagePostProcessing (SubImage *outSubImg, int outIndex, SubImage *inSubImgs) override |
Called to postProcess the output image outSubImg with the index outIndex from the input subimage inImg . More... | |
![]() | |
KernelBaseModule (int inputNum=1, int outputNum=1) | |
Constructor. More... | |
virtual void | _setCorrectCorrelationMinMax (bool imageIntervalUsed=false, MLdouble intervalMin=0, MLdouble intervalMax=0, MLint inIdx=0, MLint outIdx=0) |
This method calculates and sets the possible min/max values for output image outIdx if a correlation or convolution filtering is assumed on input inIdx. More... | |
virtual ImageVector | _getCalculatedReferenceInputExt () const |
Return the reference extent of input image dependent on the current value of _referenceExtentFld. More... | |
virtual void | _calcKernelPage (SubImage *outSubImg, int outIndex, SubImage *inSubImgs, int numInSubImgs, MLsoffset *indexTab, size_t indexTabSize, MLsoffset srcVoxelOffset, size_t loopIdx, size_t iteration, const ImageVector &ov1, const ImageVector &ov2, const ImageVector &pOf, size_t numVox)=0 |
This method is not intended to be overloaded directly, because it is subject to change. More... | |
void | calculateOutputImageProperties (int outputIndex, PagedImage *outputImage) override |
SubImageBox | calculateInputSubImageBox (int inIndex, const SubImageBox &outSubImgBox, int outIndex) override |
Calculates the region of the input image needed for the calculation of the output image region defined by outSubImg and output index outIndex . More... | |
virtual void | calcInSubImagePreparation (int outIndex, SubImage *inSubImgs) |
Does some preprocessing on input subimages if we have more than one. More... | |
virtual SubImageBox | calculateAreaToBeCalculated (const SubImageBox &areaToBeCalculated, const SubImageBox &outSubImageBox) |
Function called after the Kernel Framework calculated which box needs to be calculated for the current outImage. More... | |
virtual ImageVector | calculateOutInCoordShift (const ImageVector shift, const SubImageBox &outSubImageBox) |
Function called after the Kernel Framework calculated the shift vector between input and output. More... | |
virtual SubImageBox | calculateValidDestArea (const SubImageBox &validDestArea, const SubImageBox &outSubImageBox) |
Function called after the Kernel Framework calculated the valid area in the global destination image. More... | |
virtual void | _connectToAllOutputs (Field *field) |
Helper function to connect a field field to all output fields. More... | |
![]() | |
void | handleNotificationInternal (Field *field, FieldSensor::Strength strength) override |
Called from FieldContainer whenever a field changes. More... | |
virtual void | calculateOutputImageProperties ([[maybe_unused]] int outputIndex, [[maybe_unused]] PagedImage *outputImage) |
Set properties of output image outputImage with output index outputIndex . More... | |
virtual void | calculateOutputSubImage (SubImage *outputSubImage, int outputIndex, SubImage *inputSubImages) |
Calculates page outputSubImage of output image with index outputIndex given the input image tiles in array inputSubImages . More... | |
virtual void | provideCustomPage (int, const SubImageBox &, MLMemoryBlockHandle &) |
This method allows a Module to provide its own pages to the Host for the outputIndex output image. More... | |
void | handleNotificationOff () |
Decreases lock counter for handleNotification calls. More... | |
void | handleNotificationOn () |
Increases lock counter for handleNotification calls. More... | |
bool | isHandleNotificationOn () |
Returns true if handleNotification calls are permitted; otherwise, it returns false . More... | |
void | setOutputImageInplace (MLint outputIndex=0, MLint inputIndex=0) |
Sets the optimization flag: if calculating a page in calculateOutputSubImage(), the output image page of output outputIndex shall use the same memory as the input page of input inputIndex . More... | |
void | unsetOutputImageInplace (MLint outputIndex=0) |
Clears the optimization flag: output page of output at outputIndex and input tile shall use different memory buffers in calculateOutputSubImage(). More... | |
void | setBypass (MLint outputIndex=0, MLint inputIndex=0) |
Sets the input image whose pages can also be used instead of output pages for the output image at outputIndex to avoid recalculations. More... | |
void | setClampPagesToImageExtent (bool flag=true) |
Enables/disables page clamping on all output images. More... | |
void | setThreadSupport (THREAD_SUPPORT supportMode) |
Passes any THREAD_SUPPORT supportMode to decide whether and what type of multithreading is supported by this module. More... | |
void | permitRecursiveHandleNotifications (bool enable) |
If this flag is set to enable =true, recursive entries in handleNotification are permitted. More... | |
void | setVoxelDataTypeSupport (PERMITTED_TYPES permTypes) |
Specifies which types this module supports. More... | |
Additional Inherited Members | |
![]() | |
static MLErrorCode | getTile (PagedImage *image, SubImageBox loc, MLDataType datatype, void **data, const ScaleShiftData &scaleShiftData=ScaleShiftData(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr) |
For documentation see Host::getTile() function with same signature. More... | |
static MLErrorCode | getTile (PagedImage *image, SubImage &subimg, const ScaleShiftData &scaleShiftData=ScaleShiftData(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr) |
For documentation see Host::getTile() function with same signature and Module passed as reference. More... | |
static MLErrorCode | updateImageProperties (PagedImage *image) |
For documentation see Host::updateImageProperties() function with same signature. More... | |
static void | freeTile (void *data) |
For documentation see Host::freeTile(). More... | |
static void | updateProgress (const char *info1, const char *info2) |
For documentation see Host::updateProgress(). More... | |
static bool | shouldTerminate () |
For documentation see Host::shouldTerminate(). More... | |
static Field * | getPressedNotifyField () |
For documentation see Host::getPressedNotifyField(). More... | |
static void | adaptPageExtent (ImageVector &pageExtent, MLDataType imageType, const ImageVector &newImgExtent, const ImageVector &oldImgExtent, const ImageVector &pageUnit=ImageVector(0), const ImageVector &minPageExtent=ImageVector(0), const ImageVector &maxPageExtent=ImageVector(0)) |
Adapt page size. More... | |
static std::string | getVoxelValueAsString (PagedImage *image, const ImageVector &position, MLErrorCode *errorCode=nullptr, const std::string &errorResult="") |
Returns the voxel value at position position of the image image . More... | |
static size_t | getNumModules () |
Returns the number of instantiated modules. More... | |
static Module * | getModule (size_t index) |
Returns a pointer to instantiated module index . More... | |
static MLint | findModuleIndex (Module &module) |
Returns the index of Module module . If not found, -1 is returned. More... | |
static void | destroyModule () |
Destroys static allocated tables to avoid memory leaks. More... | |
![]() | |
enum | THREAD_SUPPORT { NO_THREAD_SUPPORT = PagedImage::NO_THREAD_SUPPORT , MULTITHREADED = PagedImage::MULTITHREADED , IO_THREAD = PagedImage::IO_THREAD } |
Enumerator deciding whether and which type of multithreading is supported by this module. More... | |
The class to apply rank based kernel filters images.
For related code and more information see mlKernelExample.h
, mlKernel.h
, mlKernelBaseModule.h
, mlKernelModule.h
, mlKernelEditor.h
, mlRankFilter.h
, mlExtConvolutionFilter.h
, mlKernelMacros
, mlKernelTools.h
and mlConvolutionFilter.h
.
Definition at line 35 of file mlRankFilter.h.
The following rank based filters are available to filter line in an image:
ID
RANK_FILTER
rankFld
. If that one does not exist then the nearest one is used.MIN_FILTER
MEDIAN_FILTER
MAX_FILTER
MAXMINUSMIN_FILTER
RANK_INDEX
RANK_INDEX:
computes the index of value of the current point in the sorted list of points under the kernel. In case some points have equal value the parameter rank is treated as a percentage parameter and we return floor (0.5+ smallest index plus rank / 100 *(higest - smallest index)) intended to identify e.g. local minima or maxima Enumerator | |
---|---|
ID | |
RANK_FILTER | |
MIN_FILTER | |
MEDIAN_FILTER | |
MAX_FILTER | |
MAXMINUSMIN_FILTER | |
RANK_INDEX | |
NUM_RANK_FILTER_TYPES |
Definition at line 96 of file mlRankFilter.h.
ml::RankFilter::RankFilter | ( | ) |
Constructor.
Initializes the fields, the members and the field connections with the image output.
Note that with the following method calls an additional field interface is created as described in KernelModule
and KernelBaseModule:
_createKernelExtentFields
(6);_createMakeSphericalField()
;_createImageIntervalFields
(0,1024,true,false);_createKernelIntervalFields
(0,1024,true,false);_createExternalKernelFields
(true,false);_createKernelInfoField()
;Also available are the fields access methods from KernelBaseModule:
|
overrideprotectedvirtual |
Called when loading has finished.
It's necessary to update the current module state to the field state.
Reimplemented from ml::KernelModule.
|
protected |
The implementation of the calculateOutputSubImage()
method overloaded from Module
is done in this macro.
It implements page border handling and a dispatcher to call the correct template version of calcRow
with the correct parameters. Note that CALC_ROW_CPP() also needs to be added in the .cpp file.
|
protected |
In this virtual template method the filtering of one row needs to be implemented.
It will be called by the CALC_ROW_H()
/ CALC_ROW_CPP()
macro.
|
overrideprotected |
Computes the output image properties (e.g. the extents) for output outIndex
.
|
inline |
Specifies the rank based filter algorithm. Default is mlMedian.
Definition at line 139 of file mlRankFilter.h.
|
inline |
Specifies the rank level for the 'Rank' algorithm. Default is 0.
Definition at line 142 of file mlRankFilter.h.
|
overrideprotectedvirtual |
Called when a parameter field is changed.
Reimplemented from ml::KernelModule.
|
static |
Strings names for rank based filters.
Definition at line 111 of file mlRankFilter.h.