Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __cmtkImageOperationMedianFilter_h_included_
00032 #define __cmtkImageOperationMedianFilter_h_included_
00033
00034 #include <cmtkconfig.h>
00035
00036 #include <Base/cmtkImageOperation.h>
00037 #include <Base/cmtkDataGridFilter.h>
00038
00039 namespace
00040 cmtk
00041 {
00042
00044 class ImageOperationMedianFilter
00046 : public ImageOperation
00047 {
00048 public:
00050 ImageOperationMedianFilter( const int radiusX, const int radiusY, const int radiusZ ) : m_RadiusX( radiusX ), m_RadiusY( radiusY ), m_RadiusZ( radiusZ ) {}
00051
00053 virtual cmtk::UniformVolume::SmartPtr Apply( cmtk::UniformVolume::SmartPtr& volume )
00054 {
00055 volume->SetData( DataGridFilter( volume ).GetDataMedianFiltered( this->m_RadiusX, this->m_RadiusY, this->m_RadiusZ ) );
00056 return volume;
00057 }
00058
00060 static void New( const char* arg );
00061
00062 private:
00064 int m_RadiusX;
00065
00067 int m_RadiusY;
00068
00070 int m_RadiusZ;
00071 };
00072
00073 }
00074
00075 #endif // #ifndef __cmtkImageOperationMedianFilter_h_included_