1 #ifndef clitkMedianImageGenericFilter_txx
2 #define clitkMedianImageGenericFilter_txx
4 /* =================================================
5 * @file clitkMedianImageGenericFilter.txx
6 * @author Bharath Navalapakkam <Bharath.Navalpakkam@creatis.insa-lyon.fr>
11 ===================================================*/
14 #include "itkMedianImageFilter.h"
20 //--------------------------------------------------------------------
21 template<class args_info_type>
22 MedianImageGenericFilter<args_info_type>::MedianImageGenericFilter():
23 ImageToImageGenericFilter<Self>("MedianImage") {
24 InitializeImageType<2>();
25 InitializeImageType<3>();
26 InitializeImageType<4>();
28 //--------------------------------------------------------------------
31 //--------------------------------------------------------------------
32 template<class args_info_type>
33 template<unsigned int Dim>
34 void MedianImageGenericFilter<args_info_type>::InitializeImageType() {
35 ADD_IMAGE_TYPE(Dim, char);
36 ADD_IMAGE_TYPE(Dim, uchar);
37 ADD_IMAGE_TYPE(Dim, short);
38 ADD_IMAGE_TYPE(Dim, int);
39 ADD_IMAGE_TYPE(Dim, float);
40 ADD_IMAGE_TYPE(Dim, double);
41 ADD_IMAGE_TYPE(Dim, unsigned short);
43 //--------------------------------------------------------------------
46 //--------------------------------------------------------------------
47 template<class args_info_type>
48 void MedianImageGenericFilter<args_info_type>::SetArgsInfo(const args_info_type & a) {
50 SetIOVerbose(mArgsInfo.verbose_flag);
52 if (mArgsInfo.input_given) {
53 SetInputFilename(mArgsInfo.input_arg);
55 if (mArgsInfo.output_given) {
56 SetOutputFilename(mArgsInfo.output_arg);
60 //--------------------------------------------------------------------
63 //--------------------------------------------------------------------
64 // Update with the number of dimensions and the pixeltype
65 //--------------------------------------------------------------------
66 template<class args_info_type>
67 template<class InputImageType>
69 MedianImageGenericFilter<args_info_type>::UpdateWithInputImageType()
72 typename InputImageType::Pointer input = this->template GetInput<InputImageType>(0);
74 typedef typename InputImageType::PixelType PixelType;
76 // typedef itk::Image<PixelType,InputImageType::ImageDimension> OutputImageType;
79 typedef itk::Image<PixelType, InputImageType::ImageDimension> OutputImageType;
80 class InputImageType::SizeType indexRadius;
83 typedef itk::MedianImageFilter<InputImageType, OutputImageType> MedianImageFilterType;
84 typename MedianImageFilterType::Pointer thresholdFilter=MedianImageFilterType::New();
85 thresholdFilter->SetInput(input);
87 indexRadius[0]=mArgsInfo.radius_arg[0];
88 indexRadius[1]=mArgsInfo.radius_arg[1];
89 indexRadius[2]=mArgsInfo.radius_arg[2];
91 // indexRadius[0] = 1;
92 // indexRadius[1] = 1;
94 thresholdFilter->SetRadius( indexRadius );
96 typename OutputImageType::Pointer outputImage = thresholdFilter->GetOutput();
97 thresholdFilter->Update();
100 this->template SetNextOutput<OutputImageType>(outputImage);
103 //--------------------------------------------------------------------
108 #endif //#define clitkMedianImageGenericFilter_txx