1 // -------------------------------------------------------------------------
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // -------------------------------------------------------------------------
5 #ifndef __CPEXTENSIONS__ALGORITHMS__RGBIMAGETOOTHERCHANNELSFILTER__H__
6 #define __CPEXTENSIONS__ALGORITHMS__RGBIMAGETOOTHERCHANNELSFILTER__H__
8 #include <itkImageToImageFilter.h>
10 namespace cpExtensions
16 template< class I, class O, class C >
17 class RGBImageToOtherChannelsFilter
18 : public itk::ImageToImageFilter< I, O >
21 typedef RGBImageToOtherChannelsFilter Self;
22 typedef itk::ImageToImageFilter< I, O > Superclass;
23 typedef itk::SmartPointer< Self > Pointer;
24 typedef itk::SmartPointer< const Self > ConstPointer;
26 typedef I TInputImage;
27 typedef O TOutputImage;
29 typedef typename I::PixelType TInputPixel;
30 typedef typename O::PixelType TOutputPixel;
34 itkTypeMacro( RGBImageToOtherChannelsFilter, itkImageToImageFilter );
37 RGBImageToOtherChannelsFilter( );
38 virtual ~RGBImageToOtherChannelsFilter( );
40 virtual void BeforeThreadedGenerateData( );
41 virtual void AfterThreadedGenerateData( );
43 virtual void ThreadedGenerateData(
44 const typename Superclass::OutputImageRegionType& region,
45 itk::ThreadIdType threadId
49 // Purposely not implemented
50 RGBImageToOtherChannelsFilter( const Self& other );
51 void operator=( const Self& other );
61 #ifndef ITK_MANUAL_INSTANTIATION
62 #include <cpExtensions/Algorithms/RGBImageToOtherChannelsFilter.hxx>
63 #endif // ITK_MANUAL_INSTANTIATION
65 #endif // __CPEXTENSIONS__ALGORITHMS__RGBIMAGETOOTHERCHANNELSFILTER__H__