SIVIC API
0.9.26
|
#include <svkEPSIPhaseCorrect.h>
Public Member Functions | |
vtkTypeMacro (svkEPSIPhaseCorrect, svkImageInPlaceFilter) | |
void | SetNumEPSIkRead (int numKspaceSamples) |
void | SetEPSIAxis (int epsiAxis) |
void | SetEPSIOrigin (float epsiOrigin) |
float | GetEPSIOrigin () |
Public Member Functions inherited from svkImageInPlaceFilter | |
vtkTypeMacro (svkImageInPlaceFilter, vtkImageInPlaceFilter) | |
svkImageData * | GetOutput () |
svkImageData * | GetOutput (int port) |
svkImageData * | GetImageDataInput (int port) |
Static Public Member Functions | |
static svkEPSIPhaseCorrect * | New () |
Protected Member Functions | |
svkEPSIPhaseCorrect () | |
~svkEPSIPhaseCorrect () | |
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
virtual int | RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) |
Protected Member Functions inherited from svkImageInPlaceFilter | |
svkImageInPlaceFilter () | |
~svkImageInPlaceFilter () | |
virtual int | FillOutputPortInformation (int vtkNotUsed(port), vtkInformation *info) |
virtual int | FillInputPortInformation (int vtkNotUsed(port), vtkInformation *info) |
This class corrects for the time shift of spectra in the EPSI direction that results from the EPSI sampling trajectory. For each TR, the spectra from neighboring K space values along the EPSI k-space axis are displaced in time relative to one another by Dt (time between EPSI samples). This time-domain shift is corrected here via the Fourier shift theorem, by applying a linear phase shift to the spectra in the frequency domain, where the magnitude of the phase shift is a linear functino of the distance of the spectrum from the origin of k-space (in EPSI direction). Spectra are then inverse FT'd back to the time domain resulting in a rectilinear spectral/spatial data set (see Figure 3 and equation 3 in the following reference).
References: Charles H. Cunningham, Daniel B. Vigneron, Albert P. Chen, Duan Xu, Sarah J. Nelson, Ralph E. Hurd, Douglas A. Kelley, John M. Pauly: "Design of Flyback Echo-Planar Readout Gradients for Magnetic Resonance Spectroscopic Imaging", Magnetic Resonance in Medicine 54:1286-1289 (2005).
|
protected |
Constructor. Initialize any member variables.
|
protected |
Clean up any allocated member variables.
|
protectedvirtual |
Set the input data type, e.g. svkMrsImageData for an MRS algorithm.
float GetEPSIOrigin | ( | ) |
Get the origin index along the EPSI encoding axis default = (numEPSIkRead-1)/2. This is the c-lang index, thus the -1, e.g.: if numEPSIkRead is 8, and data index varies from 0-7, the default origin index is 3.5. However, should depend on whether k=0 was sampled or not. If not, (default, then origin is .5 higher.
|
static |
|
protectedvirtual |
This method is called during pipeline execution. Calculates the 2D array of linear phase correction factors, which are a function of the epsi k-space index, as well as the spectral index. Applies these to all spectra in data set to generate a rectilinear spectral/spatial (k-space, time-domain) data set.
References svkDcmHeader::COL_INDEX, svkMrsImageFFT::FORWARD, svkImageData::GetDcmHeader(), svkDcmHeader::GetDimensionIndexVector(), svkDcmHeader::GetDimensionVectorIndexFromCellID(), svkDcmHeader::GetDimensionVectorValue(), svkImageInPlaceFilter::GetImageDataInput(), svkDcmHeader::GetIntValue(), svkDcmHeader::GetNumberOfCells(), svkMrsImageData::GetSpectrum(), svkMrsImageFFT::REVERSE, svkDcmHeader::ROW_INDEX, and svkDcmHeader::SLICE_INDEX.
void SetEPSIAxis | ( | int | epsiAxis | ) |
Set the axis index corresponding to the EPSI encoding (0,1 or 2).
void SetEPSIOrigin | ( | float | epsiOrigin | ) |
Set the origin index along the EPSI encoding axis default = (numEPSIkRead-1)/2. See notes for GetEPSIOrigin.
void SetNumEPSIkRead | ( | int | numKspacePoints | ) |
Set the number of k-space samples along the EPSI encoding direction (number of samples per lobe). This is the number of samples per echo in the EPSI acquisition trajetory (not necessarily the final k-space dimensionality).
vtkTypeMacro | ( | svkEPSIPhaseCorrect | , |
svkImageInPlaceFilter | |||
) |