[ITK-users] itkMeanImageFilter on RGB (how to adjust example MedianFilteringOfAnRGBImage?)

Dr. Roman Grothausmann grothausmann.roman at mh-hannover.de
Fri Jul 11 07:53:36 EDT 2014


Dear mailing list members,


How would I need to extend/modify the example for MedianFilteringOfAnRGBImage

http://itk.org/ITKExamples/src/Filtering/Smoothing/MedianFilteringOfAnRGBImage/Documentation.html

to work with itkMeanImageFilter?

I modified myRGBPixel like this:

namespace itk{
   template<typename TComponent>
   class myRGBPixel : public RGBPixel<TComponent>{
   public:
     typedef myRGBPixel     Self;
     typedef RGBPixel<TComponent> Superclass;

     myRGBPixel():Superclass() {} //avoid candidate expects 1 argument, 0 provided
     myRGBPixel(int i):Superclass(i) {} //avoid candidate expects 0 arguments, 1 
provided

     using RGBPixel<TComponent>::operator=;

     bool operator<=(const Self & r) const{
       return (this->GetLuminance() <= r.GetLuminance());
     }
     bool operator>=(const Self & r) const{
       return (this->GetLuminance() >= r.GetLuminance());
     }
     bool operator<(const Self & r) const{
       return (this->GetLuminance() < r.GetLuminance());
     }
     bool operator>(const Self & r) const{
       return (this->GetLuminance() > r.GetLuminance());
     }
   };
}


However gcc still yields this error:


In file included from /opt/itk-4.5.1/include/ITK-4.5/itkMeanImageFilter.h:115:0,
                  from /net/home/ghky/itk/simple/mean-CPU_02.cxx:8:
/opt/itk-4.5.1/include/ITK-4.5/itkMeanImageFilter.hxx: In instantiation of ?void 
itk::MeanImageFilter<TInputImage, TOutputImage>::ThreadedGenerateData(const 
OutputImageRegionType&, itk::ThreadIdType) [with TInputImage = 
itk::Image<itk::myRGBPixel<unsigned char>, 3u>; TOutputImage = 
itk::Image<itk::myRGBPixel<unsigned char>, 3u>; 
itk::MeanImageFilter<TInputImage, TOutputImage>::OutputImageRegionType = 
itk::ImageRegion<3u>; itk::ThreadIdType = unsigned int]?:
/net/home/ghky/itk/simple/mean-CPU_02.cxx:335:5:   required from here
/opt/itk-4.5.1/include/ITK-4.5/itkMeanImageFilter.hxx:81:9: error: invalid 
static_cast from type 
?itk::ConstNeighborhoodIterator<itk::Image<itk::myRGBPixel<unsigned char>, 3u>, 
itk::ZeroFluxNeumannBoundaryCondition<itk::Image<itk::myRGBPixel<unsigned char>, 
3u>, itk::Image<itk::myRGBPixel<unsigned char>, 3u> > >::PixelType {aka 
itk::myRGBPixel<unsigned char>}? to type 
?itk::MeanImageFilter<itk::Image<itk::myRGBPixel<unsigned char>, 3u>, 
itk::Image<itk::myRGBPixel<unsigned char>, 3u> >::InputRealType {aka double}?
make[3]: *** [CMakeFiles/mean-CPU_02.dir/mean-CPU_02.cxx.o] Error 1
make[2]: *** [CMakeFiles/mean-CPU_02.dir/all] Error 2
make[1]: *** [CMakeFiles/mean-CPU_02.dir/rule] Error 2
make: *** [mean-CPU_02] Error 2


What am I missing in myRGBPixel?

Any help or hints are very much appreciated
Roman

-- 
Dr. Roman Grothausmann

Tomographie und Digitale Bildverarbeitung
Tomography and Digital Image Analysis

Institut für Funktionelle und Angewandte Anatomie, OE 4120
Medizinische Hochschule Hannover
Carl-Neuberg-Str. 1
D-30625 Hannover

Tel. +49 511 532-9574


More information about the Insight-users mailing list