#include <itkBinaryFunctorImageFilter.h>
#include <itkUnaryFunctorImageFilter.h>
-#include <itkGradientMagnitudeRecursiveGaussianImageFilter.h>
#include <itkGradientRecursiveGaussianImageFilter.h>
-#include <itkHessianRecursiveGaussianImageFilter.h>
// -------------------------------------------------------------------------
template< class I, class O >
return( ( vb.magnitude( ) < va.magnitude( ) )? a: b );
}
-// -------------------------------------------------------------------------
-template< class I, class O >
-void
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-SetFilterToGradient( )
-{
- if(
- itk::NumericTraits< typename O::PixelType >::GetLength( ) ==
- I::ImageDimension
- )
- this->m_FilterId = Self::Gradient;
- else
- this->m_FilterId = Self::None;
- this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-void
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-SetFilterToGradientMagnitude( )
-{
- if( itk::NumericTraits< typename O::PixelType >::GetLength( ) == 1 )
- this->m_FilterId = Self::GradientMagnitude;
- else
- this->m_FilterId = Self::None;
- this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-void
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-SetFilterToHessian( )
-{
- itkExceptionMacro( << "Check for hessian definition." );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-bool
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-IsGradientFilter( ) const
-{
- return( this->m_FilterId == Self::Gradient );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-bool
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-IsGradientMagnitudeFilter( ) const
-{
- return( this->m_FilterId == Self::GradientMagnitude );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-bool
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-IsHessianFilter( ) const
-{
- return( this->m_FilterId == Self::Hessian );
-}
-
// -------------------------------------------------------------------------
template< class I, class O >
void
MultiScaleGaussianImageFilter( )
: Superclass( )
{
- this->SetFilterToGradientMagnitude( );
- if( !this->IsGradientMagnitudeFilter( ) )
- {
- this->SetFilterToGradient( );
- if( !this->IsGradientFilter( ) )
- this->SetFilterToHessian( );
-
- } // fi
}
// -------------------------------------------------------------------------
MultiScaleGaussianImageFilter< I, O >::
GenerateData( )
{
- typedef itk::GradientRecursiveGaussianImageFilter< I, O > _TGF;
- typedef itk::GradientMagnitudeRecursiveGaussianImageFilter< I, O > _TGMF;
- typedef itk::HessianRecursiveGaussianImageFilter< I, O > _THF;
-
- if( this->IsGradientFilter( ) )
- this->_GenerateData< _TGF >( );
- else if( this->IsGradientMagnitudeFilter( ) )
- this->_GenerateData< _TGMF >( );
- else if( this->IsHessianFilter( ) )
- this->_GenerateData< _THF >( );
+ typedef itk::GradientRecursiveGaussianImageFilter< I, O > _TGF;
+ this->_GenerateData< _TGF >( );
}
// -------------------------------------------------------------------------