A.I.M.S algorithms


filteringfunction_element_rgb.h
Go to the documentation of this file.
1 /* Copyright (C) 2000-2013 CEA
2  *
3  * This software and supporting documentation were developed by
4  * bioPICSEL
5  * CEA/DSV/I²BM/MIRCen/LMN, Batiment 61,
6  * 18, route du Panorama
7  * 92265 Fontenay-aux-Roses
8  * France
9  */
10 
11 
12 #ifndef AIMS_SIGNALFILTER_FILTERINGFUNCTION_ELEMENT_RGB_H
13 #define AIMS_SIGNALFILTER_FILTERINGFUNCTION_ELEMENT_RGB_H
14 
15 //--- aims -------------------------------------------------------------------
16 #include <aims/rgb/rgb.h>
18 //--- cartobase --------------------------------------------------------------
20 //--- forward declarations ---------------------------------------------------
21 namespace carto {
22  template <typename T> class VolumeRef;
23 }
24 namespace aims {
25  class StructuringElement;
26 }
27 //----------------------------------------------------------------------------
28 
29 #define AIMS_ELEMENT_FILTERFUNC_MULTICHANNEL_DECLARE( NAME, VOXELTYPE ) \
30  template <> \
31  class NAME< VOXELTYPE >: public ElementFilteringFunction< VOXELTYPE > \
32  { \
33  public: \
34  NAME( carto::Object options = carto::none() ); \
35  NAME( const NAME< VOXELTYPE > & other ); \
36  virtual ~NAME(); \
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; \
44  protected: \
45  NAME< VOXELTYPE::ChannelType > _m; \
46  }
47 
48 namespace aims {
51  AIMS_ELEMENT_FILTERFUNC_MULTICHANNEL_DECLARE(NotNullMedianFilterFunc, AimsRGB);
63  AIMS_ELEMENT_FILTERFUNC_MULTICHANNEL_DECLARE(ExtremaDifferenceFilterFunc, AimsRGB);
64  AIMS_ELEMENT_FILTERFUNC_MULTICHANNEL_DECLARE(ExtremaDifferenceFilterFunc, AimsRGBA);
71 } // namepsace aims
72 
73 #endif
#define AIMS_ELEMENT_FILTERFUNC_MULTICHANNEL_DECLARE(NAME, VOXELTYPE)