1 #include <cpPluginsImageFilters/IsoImageSlicer.h>
2 #include <cpPlugins/Image.h>
3 #include <cpPlugins_ITKInstances/ImageFilters.h>
5 #include <cpExtensions/Algorithms/IsoImageSlicer.h>
6 #include <cpExtensions/Algorithms/IsoImageSlicer.hxx>
7 #include <itkAffineTransform.hxx>
8 #include <itkMatrixOffsetTransformBase.hxx>
9 #include <itkVariableLengthVector.hxx>
10 #include <itkDiffusionTensor3D.hxx>
11 #include <itkOptimizerParameters.hxx>
13 #include <itkIsoImageSlicer.h>
14 #include <itkIsoImageSlicer.hxx>
15 #include <itkUnaryFunctorImageFilter.hxx>
18 // -------------------------------------------------------------------------
19 cpPluginsImageFilters::IsoImageSlicer::
23 this->_AddInput( "Input" );
24 this->_AddOutput< cpPlugins::Image >( "Output" );
26 std::vector< std::string > choices;
27 choices.push_back( "float" );
28 choices.push_back( "double" );
29 this->m_Parameters.ConfigureAsChoices( "ScalarType", choices );
30 this->m_Parameters.SetSelectedChoice( "ScalarType", "float" );
32 this->m_Parameters.ConfigureAsReal( "LowerThresholdValue" );
33 this->m_Parameters.ConfigureAsReal( "UpperThresholdValue" );
34 this->m_Parameters.ConfigureAsUint( "InsideValue" );
35 this->m_Parameters.ConfigureAsUint( "OutsideValue" );
37 this->m_Parameters.SetReal( "LowerThresholdValue", 0 );
38 this->m_Parameters.SetReal( "UpperThresholdValue", 10000 );
39 this->m_Parameters.SetReal( "InsideValue", 1 );
40 this->m_Parameters.SetReal( "OutsideValue", 0 );
44 // -------------------------------------------------------------------------
45 cpPluginsImageFilters::IsoImageSlicer::
50 // -------------------------------------------------------------------------
51 std::string cpPluginsImageFilters::IsoImageSlicer::
54 auto image = this->GetInputData( "Input" )->GetITK< itk::DataObject >( );
55 std::string cpPlugin_Image_Demangle_Pixel_AllScalars( r, _GD0, image, 3 );
59 // -------------------------------------------------------------------------
60 template< class _TImage >
61 std::string cpPluginsImageFilters::IsoImageSlicer::
62 _GD0( _TImage* image )
66 auto choice = this->m_Parameters.GetSelectedChoice( "OutputResolution" );
67 if( choice == "float" )
68 return( this->_GD1< _TImage, float >( image ) );
69 else if( choice == "double" )
70 return( this->_GD1< _TImage, double >( image ) );
71 else return( "IsoImageSlicer: no valid scalar type." );
75 "ImageFilters::IsoImageSlicer: No valid input image."
79 // -------------------------------------------------------------------------
80 template< class _TImage, class _TScalar >
81 std::string cpPluginsImageFilters::IsoImageSlicer::
82 _GD1( _TImage* image )
85 cpExtensions::Algorithms::IsoImageSlicer< _TImage, _TScalar >
87 typedef typename _TFilter::TVector _TVector;
88 typedef typename _TFilter::TMatrix _TMatrix;
91 _TFilter* filter = this->_CreateITK< _TFilter >( );
92 filter->SetInput( image );
93 filter->SetInterpolator( NULL );
94 filter->SetTranslation( _TVector( ) );
95 filter->SetRotation( _TMatrix( ) );
98 filter->SetLowerThreshold( lower_val );
99 filter->SetUpperThreshold( upper_val );
100 filter->SetInsideValue( in_val );
101 filter->SetOutsideValue( out_val );
106 this->GetOutputData( "Output" )->SetITK( filter->GetOutput( ) );
110 #include <cpExtensions/Algorithms/BezierCurveFunction.h>
111 #include <cpExtensions/Algorithms/BezierCurveFunction.hxx>
113 template class cpPluginsImageFilters_EXPORT cpExtensions::Algorithms::BezierCurveFunction< itk::Vector< float, 3 > >;
114 template class cpPluginsImageFilters_EXPORT cpExtensions::Algorithms::BezierCurveFunction< itk::Vector< double, 3 > >;