18 #ifndef __itkDWIGeneratorBase_h 19 #define __itkDWIGeneratorBase_h 23 #include "itkImageSource.h" 39 template <
class TOutputImage,
class TScalarImage=Image<
double,3> >
67 itkStaticConstMacro(OutputImageDimension,
unsigned int, OutputImageType::ImageDimension);
102 SYMMETRICAL_TENSOR_IN_CARTESIAN_COORDS=0,
105 CYLINDER_SPHERICAL_MODEL
108 itkSetEnumMacro( ModelType, ModelType );
109 itkGetEnumMacro( ModelType, ModelType );
114 itkSetObjectMacro(SamplingSchemeRSpace, SamplingSchemeRSpaceType);
115 itkGetObjectMacro(SamplingSchemeRSpace, SamplingSchemeRSpaceType);
117 itkSetObjectMacro(CylinderModel, CylinderModelType);
118 itkGetObjectMacro(CylinderModel, CylinderModelType);
123 itkSetMacro( B0Scale,
double );
124 itkGetMacro( B0Scale,
double );
127 itkSetMacro( OutputSize, OutputImageSizeType );
128 itkGetMacro( OutputSize, OutputImageSizeType );
133 return m_SamplingSchemeQSpace->GetNumberOfSamples();
138 return m_SamplingSchemeRSpace->GetNumberOfSamples();
142 itkSetMacro(NoiseSigma,
double);
143 itkGetMacro(NoiseSigma,
double);
144 itkSetMacro(SNR,
double);
145 itkGetMacro(SNR,
double);
146 itkSetMacro(ODFOrder,
unsigned int);
147 itkGetMacro(ODFOrder,
unsigned int);
149 itkSetMacro(MaxNumberOfPeaks,
int);
150 itkGetMacro(MaxNumberOfPeaks,
int);
161 return dynamic_cast< ScalarImageType*
>(this->ProcessObject::GetOutput(1) );
166 return dynamic_cast< OutputImageType*
>(this->ProcessObject::GetOutput(0) );
171 return dynamic_cast< OutputImageType*
>(this->ProcessObject::GetOutput(2) );
176 return dynamic_cast< OutputImageType*
>(this->ProcessObject::GetOutput(3) );
181 return dynamic_cast< OutputImageType*
>(this->ProcessObject::GetOutput(4) );
186 return dynamic_cast< ScalarImageType*
>(this->ProcessObject::GetOutput(5) );
190 return dynamic_cast< ScalarImageType*
>(this->ProcessObject::GetOutput(6) );
197 typename LightObject::Pointer InternalClone()
const ITK_OVERRIDE;
198 void PrintSelf(std::ostream& os, Indent indent)
const ITK_OVERRIDE;
200 void GenerateData() ITK_OVERRIDE =0;
203 virtual void Initialization();
237 void operator=(
const Self&);
246 #if !defined(ITK_MANUAL_INSTANTIATION) && !defined(__itkDWIGeneratorBase_hxx) OutputImageSizeType m_OutputSize
NDArray is a N-Dimensional array class (row-major, c version)
CylinderModelGenerator< double > CylinderModelType
OutputImageType * GetEAPImage()
unsigned int GetNumberOfQSpaceSamples() const
ImageSource< TOutputImage > Superclass
OutputImageType::RegionType OutputImageRegionType
std::vector< PrecisionType > STDVectorType
CylinderModelType::Pointer CylinderModelPointer
unsigned int GetNumberOfRSpaceSamples() const
OutputImageType::SpacingType OutputImageSpacingType
ScalarImageType * GetMSDImage()
utl::NDArray< PrecisionType, 1 > VectorType
CylinderModelPointer m_CylinderModel
utl::NDArray< PrecisionType, 2 > MatrixType
SamplingSchemeQSpace< double > SamplingSchemeQSpaceType
OutputImageType * GetDWIImage()
SamplingSchemeQSpacePointer m_SamplingSchemeQSpace
ScalarImageType * GetRTOImage()
OutputImagePointType m_OutputOrigin
OutputImageDirectionType m_OutputDirection
utl_shared_ptr< STDVectorType > STDVectorPointer
OutputImageType * GetPeakImage()
ScalarImageType * GetB0Image()
std::vector< double > DiffusionParameterValuesType
utl_shared_ptr< MatrixType > MatrixPointer
SamplingSchemeRSpacePointer m_SamplingSchemeRSpace
OutputImageType::PixelType OutputImagePixelType
ScalarImageType::Pointer ScalarImagePointer
OutputImageType::IndexType OutputImageIndexType
OutputImageType::InternalPixelType OutputImageInternalPixelType
this class describes sampling in a 3D space (Q space or R space).
this class describes sampling in Q space.
SmartPointer< Self > Pointer
OutputImageType * GetODFImage()
TScalarImage ScalarImageType
Generate DWI data based on provided parameter file.
OutputImageSpacingType m_OutputSpacing
std::vector< DiffusionParameterValuesType > DiffusionParameterContainerType
SmartPointer< Self > Pointer
OutputImageType::SizeType OutputImageSizeType
SamplingScheme3D< double > SamplingSchemeRSpaceType
TOutputImage OutputImageType
OutputImageType::PointType OutputImagePointType
SamplingSchemeRSpaceType::Pointer SamplingSchemeRSpacePointer
OutputImageType::Pointer OutputImagePointer
SamplingSchemeQSpaceType::Pointer SamplingSchemeQSpacePointer
OutputImageType::DirectionType OutputImageDirectionType
SmartPointer< Self > Pointer
#define itkSetGetBooleanMacro(name)
SmartPointer< Self > Pointer