22 #ifndef __itkKspaceImageFilter_h_
23 #define __itkKspaceImageFilter_h_
25 #include <MitkFiberTrackingExports.h>
26 #include <itkImageSource.h>
27 #include <vcl_complex.h>
29 #include <itkMersenneTwisterRandomVariateGenerator.h>
51 template<
class TPixelType >
53 public ImageSource< Image< vcl_complex< TPixelType >, 2 > >
64 itkFactorylessNewMacro(Self)
79 itkSetMacro( SpikesPerSlice,
unsigned int )
80 itkSetMacro( Z,
double )
81 itkSetMacro( UseConstantRandSeed,
bool )
82 itkSetMacro( Rotation, DoubleVectorType )
83 itkSetMacro( Translation, DoubleVectorType )
84 itkSetMacro( Zidx,
int )
86 itkSetMacro( CoilPosition, DoubleVectorType )
87 itkGetMacro( KSpaceImage, typename InputImageType::Pointer )
88 itkGetMacro( SpikeLog,
std::
string )
93 void SetT2( std::vector< double > t2Vector ) { m_T2=t2Vector; }
94 void SetT1( std::vector< double > t1Vector ) { m_T1=t1Vector; }
101 double CoilSensitivity(DoubleVectorType& pos);
103 void BeforeThreadedGenerateData();
104 void ThreadedGenerateData(
const OutputImageRegionType &outputRegionForThread, ThreadIdType threadID);
105 void AfterThreadedGenerateData();
106 double InterpolateFmapValue(itk::Point<float, 3> itkP);
140 #ifndef ITK_MANUAL_INSTANTIATION
144 #endif //__itkKspaceImageFilter_h_
Superclass of all classes generating Images (instances of class Image) as output. ...
void SetT1(std::vector< double > t1Vector)
One T1 relaxation constant per compartment image.
itk::SmartPointer< Self > Pointer
InputImageType::Pointer m_ReadoutTimeImage
FiberfoxParameters< double > * m_Parameters
itk::Image< double, 3 > ItkDoubleImgType
InputImageType::Pointer InputImagePointerType
AcquisitionType * m_ReadoutScheme
void SetT2(std::vector< double > t2Vector)
One T2 relaxation constant per compartment image.
vcl_complex< double > m_Spike
SmartPointer< const Self > ConstPointer
itk::Point< double, 2 > Point2D
DoubleVectorType m_Rotation
used to find correct point in frequency map (head motion)
vector< InputImagePointerType > m_CompartmentImages
SmartPointer< Self > Pointer
itk::Matrix< double, 3, 3 > MatrixType
itk::Vector< double, 3 > m_DiffusionGradientDirection
DoubleVectorType m_CoilPosition
Superclass::OutputImageRegionType OutputImageRegionType
unsigned int m_SpikesPerSlice
InputImageType::Pointer m_TimeFromEchoImage
Datastructure to manage the Fiberfox signal generation parameters.
Image class for storing images.
itk::Vector< double, 3 > DoubleVectorType
Base Class for Fiber Bundles;.
DoubleVectorType m_Translation
used to find correct point in frequency map (head motion)
Superclass of all classes having one or more Images as input and generating Images as output...
double m_CoilSensitivityFactor
ImageSource< Image< vcl_complex< TPixelType >, 2 > > Superclass
itk::Image< double, 2 > InputImageType
void SetCompartmentImages(std::vector< InputImagePointerType > cImgs)
One signal image per compartment.
Simulates k-space acquisition of one slice with a single shot EPI sequence. Enables the simulation of...
void SetDiffusionGradientDirection(itk::Vector< double, 3 > g)
Gradient direction is needed for eddy current simulation.
FiberBundle::Pointer m_FiberBundle
InputImageType::Pointer m_KSpaceImage
bool m_UseConstantRandSeed
Abstract class for k-space acquisiton type (k-space trajectory and echo placement) ...