MeVisLab Toolbox Reference
ml::RankFilter Class Reference

#include <mlRankFilter.h>

Inheritance diagram for ml::RankFilter:
ml::KernelModule ml::KernelBaseModule ml::Module ml::FieldContainer ml::Base

Public Types

enum  RankFilterTypes {
  ID = 0 , RANK_FILTER , MIN_FILTER , MEDIAN_FILTER ,
  MAX_FILTER , MAXMINUSMIN_FILTER , RANK_INDEX , NUM_RANK_FILTER_TYPES
}
Public Types inherited from ml::KernelBaseModule
enum  InputImageRefExtent {
  Overlap = 0 , Input0_ExtWithoutFill , Input0_ExtWithFill , MaxExtentsWithoutFill ,
  MaxExtentsWithFill , NumImageRefExtents
}
Public Types inherited from ml::Module
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...
Public Types inherited from ml::Base
enum  PersistenceInterface { PersistenceByString , PersistenceByTreeNode , PersistenceByStream }
 This enum describes the different persistence interfaces available. More...

Public Member Functions

 RankFilter ()
Fields to specify the filter algorithm and the rank.
EnumFieldgetRankFilterFld ()
 Specifies the rank based filter algorithm. Default is mlMedian.
IntFieldgetRankFld ()
 Specifies the rank level for the 'Rank' algorithm. Default is 0.
Public Member Functions inherited from ml::KernelModule
 KernelModule (int inputNum=1, int outputNum=1)
IntFieldgetKernelXFld () const
 X extent of kernel. The field name will be "kernelX". Field default is 3 if created.
IntFieldgetKernelYFld () const
 Y extent of kernel. The field name will be "kernelY". Field default is 3 if created.
IntFieldgetKernelZFld () const
 Z extent of kernel. The field name will be "kernelZ". Field default is 1 if created.
IntFieldgetKernelCFld () const
 C extent of kernel. The field name will be "kernelC". Field default is 1 if created.
IntFieldgetKernelTFld () const
 T extent of kernel. The field name will be "kernelT". Field default is 1 if created.
IntFieldgetKernelUFld () const
 U extent of kernel. The field name will be "kernelU". Field default is 1 if created.
BoolFieldgetMakeSphericalFld () const
StringFieldgetKernelInfoFld () const
DoubleFieldgetKernelElementsSumFld () const
IntFieldgetNumKernelElementsFld () const
BoolFieldgetNormalizeFld () const
StringFieldgetExternalKernelFld () const
BoolFieldgetUseExternalKernelFld () const
StringFieldgetKernelOutputFld () const
DoubleFieldgetImageIntervalMinFld () const
DoubleFieldgetImageIntervalMaxFld () const
BoolFieldgetUseImageIntervalFld () const
DoubleFieldgetKernelIntervalMinFld () const
DoubleFieldgetKernelIntervalMaxFld () const
BoolFieldgetUseKernelIntervalFld () const
BoolFieldgetAutoCalcMinMaxFld () const
NotifyFieldgetSetAutoMinMaxFld () const
DoubleFieldgetOutputMinFld () const
DoubleFieldgetOutputMaxFld () const
BoolFieldgetUseMinMaxFld () const
Public Member Functions inherited from ml::KernelBaseModule
KernelgetKernel ()
const KernelgetConstKernel () const
 Method to access the kernel as constant object. See also getKernel().
EnumFieldgetBorderHandlingFld () const
DoubleFieldgetFillValueFld () const
EnumFieldgetReferenceExtentModeFld () const
Public Member Functions inherited from ml::Module
MLMetaProfilePtrgetMetaProfile () const
 Returns the metaprofile for the base operator.
const char * getTypeNameFast () const
 Module (int numInputImages, int numOutputImages)
 ~Module () override
InputConnectorFieldgetInputImageField (MLint i) const
 Returns the field representing input image i. i must be a valid index.
OutputConnectorFieldgetOutputImageField (MLint i=0) const
 Returns the field representing output image i. i must be a valid index.
MLint getNumInputImages () const
 Returns the number of input images of this module.
MLint getNumOutputImages () const
 Returns the number of output images of this module.
PagedImagegetOutputImage (MLint outputIndex=0) const
 Returns the output image outputIndex. The index needs to be in the range [0, getNumOutputImages()-1].
InputConnectorFieldaddInputImage (const char *name=nullptr)
OutputConnectorFieldaddOutputImage (const char *name=nullptr)
PagedImagegetInputImage (MLint inputIndex, bool getReal=false) const
PagedImagegetUpdatedInputImage (MLint inputIndex, bool getReal=false) const
MLErrorCode processAllPages (int outputIndex=-1, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
MLErrorCode processAllPages (ProcessAllPagesHandler &handler, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
MLErrorCode processMissingPages (int outputIndex=0, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
void clearOutputImage (MLint i=0)
 Clears cached output image pages of output image i.
MLint getOutputImageInplace (MLint outputIndex=0) const
MLint getBypass (MLint outputIndex=0) const
THREAD_SUPPORT getThreadSupport () const
bool areRecursiveHandleNotificationsPermitted () const
MLint getHandleNotificationEntryCounter () const
PERMITTED_TYPES getVoxelDataTypeSupport () const
bool isSupportedVoxelDataType (MLDataType dt) const
virtual INPUT_HANDLE handleInput (int, INPUT_STATE) const
INPUT_STATE getInputState (MLint index)
INPUT_STATE getUpdatedInputState (MLint index)
bool isInputImageField (Field *field) const
void touchOutputImageFields () const
 Touches all output image fields to indicate that the images have changed.
virtual void beginSaveFields ()
virtual void endSaveFields ()
Public Member Functions inherited from ml::FieldContainer
 FieldContainer ()
 Constructor.
 ~FieldContainer () override
 Destructor: Deletes all added fields.
std::string whoAmI (bool withInstanceName=true) const
FieldaddField (const char *name, const char *type, const char *value)
FieldaddField (Field *field)
 Adds a field, the ownership of the field is passed to the FieldContainer.
BoolFieldaddBool (const char *name)
 Creates a BoolField with name and adds it to the container. Default value is false.
BoolFieldaddBool (const char *name, bool value)
 Creates a BoolField with name and adds it to the container.
IntFieldaddInt (const char *name)
 Creates an IntField with name and adds it to the container. Default value is 0.
IntFieldaddInt (const char *name, MLint value)
 Creates an IntField with name and adds it to the container.
EnumFieldaddEnum (const char *name, const char *const *enumerationItemNames, MLint numEnumerationItems)
EnumFieldaddEnum (const char *name, const std::vector< std::string > &enumerationItemNames)
template<typename EnumType>
TypedEnumField< EnumType > * addEnum (const char *name, const EnumValues< EnumType > &values, EnumType initialValue)
FloatFieldaddFloat (const char *name)
 Creates a FloatField with name and adds it to the container. Default value is 0.f.
FloatFieldaddFloat (const char *name, float value)
 Creates a FloatField with name and adds it to the container.
ProgressFieldaddProgress (const char *name)
 Creates a float ProgressField with name and adds it to the container. Default value is 0.f.
ProgressFieldaddProgress (const char *name, float value)
 Creates a float ProgressField with name and adds it to the container.
DoubleFieldaddDouble (const char *name)
 Creates a DoubleField with name and adds it to the container. Default value is 0.
DoubleFieldaddDouble (const char *name, double value)
 Creates a DoubleField with name and adds it to the container.
StringFieldaddString (const char *name)
 Creates a StringField with name and adds it to the container. Default value is empty string.
StringFieldaddString (const char *name, const std::string &value)
 Creates a StringField with name and adds it to the container.
NotifyFieldaddNotify (const char *name)
 Creates a NotifyField field with name and adds it to the container.
TriggerFieldaddTrigger (const char *name)
BaseFieldaddBase (const char *name)
 Creates a Base field with name and adds it to the container. Default value is NULL.
BaseFieldaddBase (const char *name, Base *value)
 Creates a Base field with name and adds it to the container.
BaseFieldaddBase (const char *name, const RefCountedBasePtr &value)
 Creates a Base field with name and adds it to the container. Sets the value from intrusive pointer.
template<typename T>
BaseFieldaddBaseWithAllowedType (const char *name, T *value=nullptr)
 As above, but also sets the allowed type of the field.
template<typename T>
BaseFieldaddBaseWithAllowedType (const char *name, const ::boost::intrusive_ptr< T > &value)
 As above, but also sets the allowed type of the field.
template<typename T>
TypedBaseField< T > * addTypedBase (const char *name)
 Creates a TypedBaseField with name and adds it to the container. Default value is NULL.
template<typename T>
TypedBaseField< T > * addTypedBase (const char *name, T *value)
 Creates a TypedBaseField with name and adds it to the container.
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.
SoNodeFieldaddSoNode (const char *name)
 Creates a SoNodeField with name and adds it to the container. Default value is NULL.
SoNodeFieldaddSoNode (const char *name, SoNode *value)
 Creates a SoNodeField with name and adds it to the container.
PointerFieldaddPointer (const char *name)
 Creates a PointerField with name and adds it to the container.
Vector2FieldaddVector2 (const char *name)
 Creates a Vector2Field with name and adds it to the container.
Vector2FieldaddVector2 (const char *name, const Vector2 &value)
 Creates a Vector2Field with name and adds it to the container.
Vector2FieldaddVector2 (const char *name, double x, double y)
 Creates a Vector2Field with name and adds it to the container.
Vector3FieldaddVector3 (const char *name)
 Creates a Vector3Field with name and adds it to the container.
Vector3FieldaddVector3 (const char *name, const Vector3 &value)
 Creates a Vector3Field with name and adds it to the container.
Vector3FieldaddVector3 (const char *name, double x, double y, double z)
 Creates a Vector3Field with name and adds it to the container.
Vector4FieldaddVector4 (const char *name)
 Creates a Vector4Field with name and adds it to the container.
Vector4FieldaddVector4 (const char *name, const Vector4 &value)
 Creates a Vector4Field with name and adds it to the container.
Vector4FieldaddVector4 (const char *name, double x, double y, double z, double w)
 Creates a Vector4Field with name and adds it to the container.
Vector5FieldaddVector5 (const char *name)
 Creates a Vector5Field with name and adds it to the container.
Vector5FieldaddVector5 (const char *name, const Vector5 &value)
 Creates a Vector5Field with name and adds it to the container.
Vector6FieldaddVector6 (const char *name)
 Creates a Vector6Field with name and adds it to the container.
Vector6FieldaddVector6 (const char *name, const Vector6 &value)
 Creates a Vector6Field with name and adds it to the container.
Vector10FieldaddVector10 (const char *name)
 Creates a Vector10Field with name and adds it to the container.
Vector10FieldaddVector10 (const char *name, const Vector10 &value)
 Creates a Vector10Field with name and adds it to the container.
ImageVectorFieldaddImageVector (const char *name)
 Creates a ImageVectorField with name and adds it to the container.
ImageVectorFieldaddImageVector (const char *name, const ImageVector &value)
 Creates a ImageVectorField with name and adds it to the container.
ImageVectorFieldaddImageVector (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.
SubImageBoxFieldaddSubImageBox (const char *name)
 Creates a SubImageBoxField with name and adds it to the container.
SubImageBoxFieldaddSubImageBox (const char *name, const SubImageBox &value)
 Creates a SubImageBoxField with name and adds it to the container.
SubImageBoxdFieldaddSubImageBoxd (const char *name)
 Creates a SubImageBoxd field with name and adds it to the container.
SubImageBoxdFieldaddSubImageBoxd (const char *name, const SubImageBoxd &value)
 Creates a SubImageBoxd field with name and adds it to the container.
ColorFieldaddColor (const char *name)
 Creates a ColorField with name and adds it to the container.
ColorFieldaddColor (const char *name, float r, float g, float b)
 Creates a ColorField with name and adds it to the container.
ColorFieldaddColor (const char *name, const Vector3 &value)
 Creates a ColorField with name and adds it to the container.
PlaneFieldaddPlane (const char *name)
 Creates a PlaneField with name and adds it to the container.
PlaneFieldaddPlane (const char *name, double f0, double f1, double f2, double f3)
 Creates a PlaneField with name and adds it to the container.
PlaneFieldaddPlane (const char *name, const Plane &value)
 Creates a PlaneField with name and adds it to the container.
RotationFieldaddRotation (const char *name)
 Creates a RotationField with name and adds it to the container.
RotationFieldaddRotation (const char *name, const Rotation &value)
 Creates a RotationField with name and adds it to the container.
Matrix2FieldaddMatrix2 (const char *name)
 Creates a Matrix2Field with name and adds it to the container.
Matrix2FieldaddMatrix2 (const char *name, const Matrix2 &value)
 Creates a Matrix2Field with name and adds it to the container.
Matrix3FieldaddMatrix3 (const char *name)
 Creates a Matrix3Field with name and adds it to the container.
Matrix3FieldaddMatrix3 (const char *name, const Matrix3 &value)
 Creates a Matrix3Field with name and adds it to the container.
Matrix4FieldaddMatrix4 (const char *name)
 Creates a Matrix4Field with name and adds it to the container.
Matrix4FieldaddMatrix4 (const char *name, const Matrix4 &value)
 Creates a Matrix4Field with name and adds it to the container.
Matrix5FieldaddMatrix5 (const char *name)
 Creates a Matrix5Field with name and adds it to the container.
Matrix5FieldaddMatrix5 (const char *name, const Matrix5 &value)
 Creates a Matrix5Field with name and adds it to the container.
Matrix6FieldaddMatrix6 (const char *name)
 Creates a Matrix6Field with name and adds it to the container.
Matrix6FieldaddMatrix6 (const char *name, const Matrix6 &value)
 Creates a Matrix6Field with name and adds it to the container.
MatrixFieldaddMatrix (const char *name)
 Creates a MatrixField with name and adds it to the container.
MatrixFieldaddMatrix (const char *name, const Matrix4 &value)
 Creates a MatrixField with name and adds it to the container.
MLDataTypeFieldaddMLDataType (const char *name)
 Creates a MTDataTypeField with name and adds it to the container.
MLDataTypeFieldaddMLDataType (const char *name, MLDataType value)
 Creates a MTDataTypeField with name and adds it to the container.
UniversalTypeFieldaddUniversalType (const char *name)
 Creates an UniversalTypeField field with name and adds it to the container.
IntListFieldaddIntList (const char *name)
 Creates an IntListField field with name and empty list value and adds it to the container.
IntListFieldaddIntList (const char *name, const std::vector< MLint > &value)
 Creates an IntListField field with name and given list value and adds it to the container.
DoubleListFieldaddDoubleList (const char *name)
 Creates an DoubleListField field with name and empty list value and adds it to the container.
DoubleListFieldaddDoubleList (const char *name, const std::vector< double > &value)
 Creates an DoubleListField field with name and given list value and adds it to the container.
Vector2ListFieldaddVector2List (const char *name)
 Creates an Vector2ListField field with name and empty list value and adds it to the container.
Vector2ListFieldaddVector2List (const char *name, const std::vector< Vector2 > &value)
 Creates an Vector2ListField field with name and given list value and adds it to the container.
Vector3ListFieldaddVector3List (const char *name)
 Creates an Vector3ListField field with name and empty list value and adds it to the container.
Vector3ListFieldaddVector3List (const char *name, const std::vector< Vector3 > &value)
 Creates an Vector3ListField field with name and given list value and adds it to the container.
Vector4ListFieldaddVector4List (const char *name)
 Creates an Vector4ListField field with name and empty list value and adds it to the container.
Vector4ListFieldaddVector4List (const char *name, const std::vector< Vector4 > &value)
 Creates an Vector4ListField field with name and given list value and adds it to the container.
size_t getNumFields () const
 Returns the number of added fields.
bool hasField (const std::string &name) const
 Returns true if the field with name name exists; otherwise, false is returned.
FieldgetField (const std::string &name) const
FieldgetField (MLint index) const
 Returns pointer of field at index if it exists. If not, -1 is returned.
MLint getFieldIndex (Field *field) const
 Returns index of field if it exists. If not, -1 is returned.
void setFieldStringValue (const std::string &name, const std::string &value)
std::string getFieldStringValue (const std::string &name) const
virtual void deactivateAttachments ()
Public Member Functions inherited from ml::Base
 Base ()
 Constructor.
virtual ~Base ()
 Destructor.
virtual BasedeepCopy () const
bool isOfAllowedType (const std::vector< const RuntimeType * > &types) const
virtual bool isRefCountedBase () const
 Returns whether the instance is derived from RefCountedBase.
virtual std::string detailString () const
virtual bool implementsPersistence (PersistenceInterface) const
virtual std::string persistentState () const
 Returns a string describing the object's internal state.
virtual void setPersistentState (const std::string &state)
virtual void addStateToTree (TreeNode *) const
 Attaches the object state as children of the given parent node.
virtual void readStateFromTree (TreeNode *)
 Reads the object state from the children of the given parent node.
virtual void writeTo (AbstractPersistenceOutputStream *) const
virtual void readFrom (AbstractPersistenceInputStream *, int)

Static Public Attributes

static const char *const RankFilterNames []
 Strings names for rank based filters.

Protected Member Functions

void calculateOutputImageProperties (int outputIndex, PagedImage *outputImage) override
 Computes the output image properties (e.g. the extents) for output outIndex.
void handleNotification (Field *field) override
 Called when a parameter field is changed.
void activateAttachments () override
 CALC_ROW_H ()
template<typename DATATYPE>
void calcRow (MLsoffset *indexTab, size_t indexTabSize, MLsoffset srcVoxelOffset, size_t numVox, DATATYPE *inCursor, DATATYPE *outCursor, const ImageVector &)
Protected Member Functions inherited from ml::KernelModule
virtual void _userKernelPreUpdate ()
virtual void _userKernelPostUpdate ()
virtual void _createKernelExtentFields (int numDim=6, const ImageVector &defaultExt=ImageVector(3, 3, 1, 1, 1, 1))
virtual void _validateKernelExtents ()
virtual void _createMakeSphericalField (bool defaultVal=false)
virtual void _createNormalizeField (bool defaultVal=false)
virtual void _createMinMaxCalcFields (bool defaultValue=false, bool createSetOutputMinMax=false)
virtual void _createMinMaxFields (MLdouble minVal=0, MLdouble maxVal=0, bool defaultValue=false)
virtual void _createExternalKernelFields (bool createUseToggle=false, bool defaultVal=false)
virtual void _createKernelOutputField ()
virtual void _createImageIntervalFields (MLdouble min=0, MLdouble max=1024, bool createToggle=false, bool useIt=false)
virtual void _createKernelIntervalFields (MLdouble min=0, MLdouble max=1024, bool createToggle=false, bool useIt=false)
virtual void _createKernelInfoField ()
virtual void _createNumKernelElementsField ()
virtual void _createKernelElementsSumField ()
virtual void _updateKernel ()
virtual void _updateKernel (bool permitExtentChanges)
virtual void _updateKernelOutputField ()
virtual std::string _composeKernelInfo (bool valid=true) const
void _setImageInterval (MLdouble minVal=-DBL_MAX, MLdouble maxVal=DBL_MAX)
void _setKernelInterval (MLdouble minVal=-DBL_MAX, MLdouble maxVal=DBL_MAX)
bool _isInImageInterval (MLdouble v) const
bool _isInKernelInterval (MLdouble v) const
void calcOutSubImagePostProcessing (SubImage *outSubImg, int outIndex, SubImage *inSubImgs) override
Protected Member Functions inherited from ml::KernelBaseModule
 KernelBaseModule (int inputNum=1, int outputNum=1)
virtual void _setCorrectCorrelationMinMax (bool imageIntervalUsed=false, MLdouble intervalMin=0, MLdouble intervalMax=0, MLint inIdx=0, MLint outIdx=0)
virtual ImageVector _getCalculatedReferenceInputExt () const
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
 number of voxels in row to be processed.
SubImageBox calculateInputSubImageBox (int inIndex, const SubImageBox &outSubImgBox, int outIndex) override
virtual void calcInSubImagePreparation (int outIndex, SubImage *inSubImgs)
virtual SubImageBox calculateAreaToBeCalculated (const SubImageBox &areaToBeCalculated, const SubImageBox &outSubImageBox)
virtual ImageVector calculateOutInCoordShift (const ImageVector shift, const SubImageBox &outSubImageBox)
virtual SubImageBox calculateValidDestArea (const SubImageBox &validDestArea, const SubImageBox &outSubImageBox)
virtual void _connectToAllOutputs (Field *field)
Protected Member Functions inherited from ml::Module
void handleNotificationInternal (Field *field, FieldSensor::Strength strength) override
virtual void provideCustomPage (int, const SubImageBox &, MLMemoryBlockHandle &)
void handleNotificationOff ()
void handleNotificationOn ()
bool isHandleNotificationOn ()
 Returns true if handleNotification calls are permitted; otherwise, it returns false.
void setOutputImageInplace (MLint outputIndex=0, MLint inputIndex=0)
void unsetOutputImageInplace (MLint outputIndex=0)
void setBypass (MLint outputIndex=0, MLint inputIndex=0)
void setClampPagesToImageExtent (bool flag=true)
void setThreadSupport (THREAD_SUPPORT supportMode)
void permitRecursiveHandleNotifications (bool enable)
void setVoxelDataTypeSupport (PERMITTED_TYPES permTypes)

Additional Inherited Members

Static Public Member Functions inherited from ml::Module
static MLErrorCode getTile (PagedImage *image, SubImageBox loc, MLDataType datatype, void **data, const ScaleShiftData &scaleShiftData=ScaleShiftData(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
static MLErrorCode getTile (PagedImage *image, SubImage &subimg, const ScaleShiftData &scaleShiftData=ScaleShiftData(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
static MLErrorCode updateImageProperties (PagedImage *image)
static void freeTile (void *data)
 For documentation see Host::freeTile().
static void updateProgress (const char *info1, const char *info2)
 For documentation see Host::updateProgress().
static bool shouldTerminate ()
 For documentation see Host::shouldTerminate().
static FieldgetPressedNotifyField ()
 For documentation see Host::getPressedNotifyField().
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))
static std::string getVoxelValueAsString (PagedImage *image, const ImageVector &position, MLErrorCode *errorCode=nullptr, const std::string &errorResult="")
static size_t getNumModules ()
 Returns the number of instantiated modules.
static ModulegetModule (size_t index)
 Returns a pointer to instantiated module index.
static MLint findModuleIndex (Module &module)
 Returns the index of Module module. If not found, -1 is returned.
static void destroyModule ()
Protected Types inherited from ml::Module
enum  THREAD_SUPPORT { NO_THREAD_SUPPORT = PagedImage::NO_THREAD_SUPPORT , MULTITHREADED = PagedImage::MULTITHREADED , IO_THREAD = PagedImage::IO_THREAD }

Detailed Description

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.

Member Enumeration Documentation

◆ RankFilterTypes

The following rank based filters are available to filter line in an image:

  • ID
    Applies border handling with selected pad modes but simply copies input image to output in defined ares. Useful to compare filter results with original data where only the filtered area changes.
  • RANK_FILTER
    Sorts upwards all image voxels under kernel elements and writes that one to the output which is selected by rankFld. If that one does not exist then the nearest one is used.
  • MIN_FILTER
    Writes the minimum value of all values under kernel elements to the output.
  • MEDIAN_FILTER
    Sorts upwards all image voxels under kernel elements and writes the middle one to the output image. If no middle one exists the next higher one is used.
  • MAX_FILTER
    Writes the maximum value of all values under kernel elements to the output.
  • MAXMINUSMIN_FILTER
    Writes the maximum value minus the minimum value of all values under kernel elements to the output, replicates the action of computing the difference of two Rank filters in Max resp. Min modes.
  • RANK_INDEX
    Sorts upwards all input voxels 'under' kernel elements and writes the index of the position of the current voxel to the output. In case multiple voxels under the kernel have the same value as the center one the rank field is used as a relative percentage parameter to decide which of the indexes belonging to the same value will be written. Therefore the formula: index = floor(0.5+minIdx+ rank/100.0*(maxIdx-minIdx)) is used. E.g. if there are 10 voxels with the color of the center one under a 27 neigbourhood kernel (including the center) and the first / last index is 12 resp. 21 then when rank = 0 the output is 12, for rank = 100 the output is 21 and for rank = 20 the output will be 14. This mode with appropriate use of the rank as a percentage can be useful in combination with an interval thresholding to find the equivalent of local minima or maxima in a quantized image.
    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.

Constructor & Destructor Documentation

◆ RankFilter()

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:

Also available are the fields access methods from KernelBaseModule:

Referenced by calcRow().

Member Function Documentation

◆ activateAttachments()

void ml::RankFilter::activateAttachments ( )
overrideprotectedvirtual

Called when loading has finished. It's necessary to update the current module state to the field state.

Reimplemented from ml::KernelModule.

◆ CALC_ROW_H()

ml::RankFilter::CALC_ROW_H ( )
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.

◆ calcRow()

template<typename DATATYPE>
void ml::RankFilter::calcRow ( MLsoffset * indexTab,
size_t indexTabSize,
MLsoffset srcVoxelOffset,
size_t numVox,
DATATYPE * inCursor,
DATATYPE * outCursor,
const ImageVector &  )
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.

References RankFilter().

◆ calculateOutputImageProperties()

void ml::RankFilter::calculateOutputImageProperties ( int outputIndex,
PagedImage * outputImage )
overrideprotectedvirtual

Computes the output image properties (e.g. the extents) for output outIndex.

Reimplemented from ml::KernelModule.

◆ getRankFilterFld()

EnumField * ml::RankFilter::getRankFilterFld ( )
inline

Specifies the rank based filter algorithm. Default is mlMedian.

Definition at line 139 of file mlRankFilter.h.

◆ getRankFld()

IntField * ml::RankFilter::getRankFld ( )
inline

Specifies the rank level for the 'Rank' algorithm. Default is 0.

Definition at line 142 of file mlRankFilter.h.

◆ handleNotification()

void ml::RankFilter::handleNotification ( Field * field)
overrideprotectedvirtual

Called when a parameter field is changed.

Reimplemented from ml::KernelModule.

Member Data Documentation

◆ RankFilterNames

const char* const ml::RankFilter::RankFilterNames[]
static

Strings names for rank based filters.

Definition at line 111 of file mlRankFilter.h.


The documentation for this class was generated from the following file: