1 #include <cpPluginsImageFilters/ImageToHistogramFilter.h>
2 #include <cpPlugins/Image.h>
3 #include <cpPlugins_ITKInstances/ImageFilters.h>
5 #include <itkImageToHistogramFilter.h>
6 #include <itkImageToHistogramFilter.hxx>
8 #include <itkImageToImageFilter.hxx>
9 #include <itkInPlaceImageFilter.hxx>
10 #include <itkUnaryFunctorImageFilter.hxx>
13 // -------------------------------------------------------------------------
14 cpPluginsImageFilters::ImageToHistogramFilter::
15 ImageToHistogramFilter( )
18 this->_AddInput( "Input" );
19 this->_AddOutput< cpPlugins::DataObject >( "Output" );
22 // -------------------------------------------------------------------------
23 cpPluginsImageFilters::ImageToHistogramFilter::
24 ~ImageToHistogramFilter( )
28 // -------------------------------------------------------------------------
29 std::string cpPluginsImageFilters::ImageToHistogramFilter::
32 auto image = this->GetInputData( "Input" )->GetITK< itk::DataObject >( );
33 std::string cpPlugin_Image_Demangle_Pixel_AllScalars( r, _GD0, image, 1 );
34 if( r != "" ) cpPlugin_Image_Demangle_Pixel_AllScalars( r, _GD0, image, 2 );
35 if( r != "" ) cpPlugin_Image_Demangle_Pixel_AllScalars( r, _GD0, image, 3 );
36 if( r != "" ) cpPlugin_Image_Demangle_Pixel_AllScalars( r, _GD0, image, 4 );
40 // -------------------------------------------------------------------------
41 template< class _TImage >
42 std::string cpPluginsImageFilters::ImageToHistogramFilter::
43 _GD0( _TImage* image )
45 typedef itk::Statistics::ImageToHistogramFilter< _TImage > _F;
47 typedef typename _TImage::PixelType _TP;
48 typedef typename _TBinaryImage::PixelType _UP;
51 _TP lower_val = _TP( this->m_Parameters.GetReal( "LowerThresholdValue" ) );
52 _TP upper_val = _TP( this->m_Parameters.GetReal( "UpperThresholdValue" ) );
53 _UP in_val = _UP( this->m_Parameters.GetUint( "InsideValue" ) );
54 _UP out_val = _UP( this->m_Parameters.GetUint( "OutsideValue" ) );
58 _F* filter = this->_CreateITK< _F >( );
60 filter->SetInput( image );
61 filter->SetLowerThreshold( lower_val );
62 filter->SetUpperThreshold( upper_val );
63 filter->SetInsideValue( in_val );
64 filter->SetOutsideValue( out_val );
68 this->GetOutputData( "Output" )->SetITK( filter->GetOutput( ) );
70 return( "ImageToHistogramFilter: not ready yet." );