32 #ifndef _itk_ElectrostaticRepulsionDiffusionGradientReductionFilter_h_
33 #define _itk_ElectrostaticRepulsionDiffusionGradientReductionFilter_h_
35 #include <itkImageToImageFilter.h>
36 #include <itkVectorImage.h>
45 template <
class TInputScalarType,
class TOutputScalarType>
47 :
public ImageToImageFilter<itk::VectorImage<TInputScalarType,3>, itk::VectorImage<TOutputScalarType,3> >
55 typedef ImageToImageFilter< itk::VectorImage<TOutputScalarType,3>, itk::VectorImage<TOutputScalarType,3> >
59 itkFactorylessNewMacro(Self)
83 itkGetMacro(OriginalGradientDirections, GradientDirectionContainerType::Pointer)
84 itkSetMacro(OriginalGradientDirections, GradientDirectionContainerType::Pointer)
86 itkGetMacro(GradientDirections, GradientDirectionContainerType::Pointer)
87 itkSetMacro(GradientDirections, GradientDirectionContainerType::Pointer)
121 #ifndef ITK_MANUAL_INSTANTIATION
BValueMap m_InputBValueMap
IndicesVector GetUsedGradientIndices()
IndicesVector m_UsedGradientIndices
itk::SmartPointer< Self > Pointer
TInputScalarType InputScalarType
itk::VectorImage< InputScalarType, 3 > InputImageType
void SetOriginalBValueMap(BValueMap inp)
OutputImageType::PixelType OutputPixelType
double Costs()
calculates electrostatic energy of current direction set
BaselineScalarType BaselinePixelType
OutputScalarType BaselineScalarType
TOutputScalarType OutputScalarType
~ElectrostaticRepulsionDiffusionGradientReductionFilter()
IndicesVector m_BaselineImageIndices
SmartPointer< Self > Pointer
void SetShellSelectionBValueMap(BValueMap inp)
itk::VectorContainer< unsigned int, GradientDirectionType > GradientDirectionContainerType
ImageToImageFilter< itk::VectorImage< TOutputScalarType, 3 >, itk::VectorImage< TOutputScalarType, 3 > > Superclass
BValueMap m_OriginalBValueMap
GradientDirectionContainerType::Pointer m_OriginalGradientDirections
input gradient directions
ElectrostaticRepulsionDiffusionGradientReductionFilter Self
void SetNumGradientDirections(std::vector< unsigned int > numDirs)
Select subset of the input vectors equally distributed over the sphere using an iterative electrostat...
InputImageType::PixelType InputPixelType
IndicesVector m_UnusedGradientIndices
std::vector< unsigned int > IndicesVector
std::vector< unsigned int > m_NumGradientDirections
itk::Image< BaselinePixelType, 3 > BaselineImageType
itk::VectorImage< OutputScalarType, 3 > OutputImageType
ElectrostaticRepulsionDiffusionGradientReductionFilter()
GradientDirectionContainerType::Pointer m_GradientDirections
container for the subsampled output gradient directions
void UpdateOutputInformation()
SmartPointer< const Self > ConstPointer
vnl_vector_fixed< double, 3 > GradientDirectionType
std::map< unsigned int, IndicesVector > BValueMap