12 #ifndef AIMS_SIGNALFILTER_FILTERINGFUNCTION_ELEMENT_RGB_H
13 #define AIMS_SIGNALFILTER_FILTERINGFUNCTION_ELEMENT_RGB_H
22 template <
typename T>
class VolumeRef;
25 class StructuringElement;
29 #define AIMS_ELEMENT_FILTERFUNC_MULTICHANNEL_DECLARE( NAME, VOXELTYPE ) \
31 class NAME< VOXELTYPE >: public ElementFilteringFunction< VOXELTYPE > \
34 NAME( carto::Object options = carto::none() ); \
35 NAME( const NAME< VOXELTYPE > & other ); \
37 NAME< VOXELTYPE > & operator=( const NAME< VOXELTYPE > & other ); \
38 virtual NAME * clone() const; \
39 virtual void setOptions( const carto::Object & options ); \
40 virtual void updateOptions( const carto::Object & options ); \
41 virtual VOXELTYPE execute( const carto::VolumeRef< VOXELTYPE > & in ) const; \
42 virtual VOXELTYPE execute( const carto::VolumeRef< VOXELTYPE > & in, \
43 const carto::rc_ptr<StructuringElement> & se ) const; \
45 NAME< VOXELTYPE::ChannelType > _m; \
AIMS_ELEMENT_FILTERFUNC_MULTICHANNEL_DECLARE(MedianFilterFunc, AimsRGB)