SIVIC API  0.9.26
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
svkMrsImageFFT Class Reference

#include <svkMrsImageFFT.h>

Inheritance diagram for svkMrsImageFFT:
svkImageInPlaceFilter

Public Types

enum  FFTDomain { SPECTRAL = 0, SPATIAL }
 
enum  FFTMode { FORWARD = 0, REVERSE }
 

Public Member Functions

 vtkTypeMacro (svkMrsImageFFT, svkImageInPlaceFilter)
 
void SetUpdateExtent (int *start, int *end)
 
void SetFFTDomain (FFTDomain domain)
 
void SetFFTMode (FFTMode mode)
 
void SetPreCorrectCenter (bool preCorrectCenter)
 
void SetPostCorrectCenter (bool postCorrectCenter)
 
void SetVoxelShift (double voxelShift[3])
 
void OnlyUseSelectionBox ()
 
- Public Member Functions inherited from svkImageInPlaceFilter
 vtkTypeMacro (svkImageInPlaceFilter, vtkImageInPlaceFilter)
 
svkImageDataGetOutput ()
 
svkImageDataGetOutput (int port)
 
svkImageDataGetImageDataInput (int port)
 

Static Public Member Functions

static svkMrsImageFFTNew ()
 
static void ConvertArrayToImageComplex (vtkDataArray *array, vtkImageComplex *imageComplexArray)
 
static void FFTShift (vtkImageComplex *dataIn, int numPoints)
 
static void IFFTShift (vtkImageComplex *dataIn, int numPoints)
 

Protected Member Functions

 svkMrsImageFFT ()
 
 ~svkMrsImageFFT ()
 
virtual int FillInputPortInformation (int port, vtkInformation *info)
 
virtual int RequestInformation (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
 
virtual int RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
 
virtual int RequestDataSpatial (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageFourierFilter *fourierFilter)
 
virtual int RequestDataSpectral (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageFourierFilter *fourierFilter)
 
- Protected Member Functions inherited from svkImageInPlaceFilter
 svkImageInPlaceFilter ()
 
 ~svkImageInPlaceFilter ()
 
virtual int FillOutputPortInformation (int vtkNotUsed(port), vtkInformation *info)
 
virtual int FillInputPortInformation (int vtkNotUsed(port), vtkInformation *info)
 

Detailed Description

Class to apply spectral or spatial FFT. If both spectral and spatial transforms are required, then should be called multiple timw with SetFFTDomain set appropriately.

Based on reconstruction methods developed by Sarah J. Nelson, Ph.D (UCSF).

  1. Nelson S.J, "Analysis of volume MRI and MR spectroscopic imaging data for the evaluation of patients with brain tumors", Magnetic Resonance in Medicine, 46(2), p228-239 (2001).

In development!

Member Enumeration Documentation

enum FFTDomain
Enumerator
SPECTRAL 
SPATIAL 
enum FFTMode
Enumerator
FORWARD 
REVERSE 

Constructor & Destructor Documentation

svkMrsImageFFT ( )
protected
~svkMrsImageFFT ( )
protected

Member Function Documentation

void ConvertArrayToImageComplex ( vtkDataArray *  spectrum,
vtkImageComplex *  imageComplexSpectrum 
)
static

Method for converting between vtkDataArrays and vtkImageComplex.

Referenced by svkMrsImageFFT::RequestDataSpectral().

void FFTShift ( vtkImageComplex *  dataIn,
int  numPoints 
)
static

Shifts the zero frequency component in output of FFT operation to center of the spectrum. Behaves differently for even and odd data lengths.

Referenced by svkMrsImageFFT::RequestDataSpectral().

int FillInputPortInformation ( int  port,
vtkInformation *  info 
)
protectedvirtual
void IFFTShift ( vtkImageComplex *  dataIn,
int  numPoints 
)
static

Shifts the zero frequency component from center to origin, for example in preparation for an IFFT. Behaves differently for even and odd data lengths. Assumes that the data is ordered from low to high frequency.

Referenced by svkMrsImageFFT::RequestDataSpectral().

static svkMrsImageFFT* New ( )
static
void OnlyUseSelectionBox ( )
int RequestData ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtual
int RequestDataSpatial ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector,
vtkImageFourierFilter *  fourierFilter 
)
protectedvirtual
int RequestDataSpectral ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector,
vtkImageFourierFilter *  fourierFilter 
)
protectedvirtual
int RequestInformation ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtual
void SetFFTDomain ( FFTDomain  domain)
void SetFFTMode ( FFTMode  mode)
void SetPostCorrectCenter ( bool  postCorrectCenter)

Should we correct for an offset center after FT?

void SetPreCorrectCenter ( bool  preCorrectCenter)

Should we correct for an offset center before FT?

void SetUpdateExtent ( int *  start,
int *  end 
)

Sets the extent over which the phasing should be applied. Takes 2 sets of x,y,z indices that specify the extent range in 3D.

void SetVoxelShift ( double  voxelShift[3])
vtkTypeMacro ( svkMrsImageFFT  ,
svkImageInPlaceFilter   
)

The documentation for this class was generated from the following files: