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 | Static Protected Attributes | List of all members
svkHSVD Class Reference

#include <svkHSVD.h>

Inheritance diagram for svkHSVD:
svkThreadedImageAlgorithm

Public Types

enum  HSVDBehaviorOnError { SET_FILTER_TO_ZERO = 0, SET_SIGNAL_TO_ZERO = 1, IGNORE_ERROR = 2 }
 

Public Member Functions

 vtkTypeMacro (svkHSVD, svkThreadedImageAlgorithm)
 
void RemoveH20On ()
 
void RemoveLipidOn ()
 
void AddPPMFrequencyFilterRule (float frequencyLimit1PPM, float frequencyLimit2PPM)
 
void AddFrequencyAndDampingFilterRule (float frequencyLimit1PPM, float frequencyLimit2PPM, float dampingThreshold)
 
void AddDampingFilterRule (float dampingThreshold)
 
bool GetFitSuccessStatus ()
 
void ExportFilterImage ()
 
svkMrsImageDataGetFilterImage ()
 
svkMriImageDataGetFitSuccessImage ()
 
void OnlyFitSpectraInVolumeLocalization ()
 
void SetModelOrder (int modelOrder)
 
void SetErrorHandlingBehavior (HSVDBehaviorOnError errBehavior)
 
void SetErrorHandlingSignalToZeroOn ()
 
void SetErrorHandlingFilterToZeroOn ()
 
void SetErrorHandlingIgnoreError ()
 
void SetThresholdModelDifference (float percentDifferenceUp, float percentDifferenceDown)
 
void SetSingleThreaded ()
 
- Public Member Functions inherited from svkThreadedImageAlgorithm
 vtkTypeMacro (svkThreadedImageAlgorithm, vtkThreadedImageAlgorithm)
 
svkImageDataGetOutput ()
 
virtual svkImageDataGetOutput (int port)
 
svkImageDataGetImageDataInput (int port)
 

Static Public Member Functions

static svkHSVDNew ()
 

Protected Member Functions

 svkHSVD ()
 
 ~svkHSVD ()
 
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 void ThreadedRequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int extent[6], int threadId)
 
- Protected Member Functions inherited from svkThreadedImageAlgorithm
 svkThreadedImageAlgorithm ()
 
 ~svkThreadedImageAlgorithm ()
 
virtual int FillOutputPortInformation (int vtkNotUsed(port), vtkInformation *info)
 
virtual int FillInputPortInformation (int vtkNotUsed(port), vtkInformation *info)
 
int SplitExtent (int splitExt[6], int startExt[6], int num, int total)
 

Static Protected Attributes

static int * progress
 

Detailed Description

.NAME svkHSVD - HSVD and baseline fitting of spectra. .SECTION Description Class to apply HSVD algorithm to model time domain spectrum primarily for removal of unwanted spectral components such as water or fat. This underlying algorithm in this class is based on code implemented by Bjoern Menze, Ph.D (Zurich) and B. Michael Kelm, Ph.D.(Erlangen).

References: Pijnappel WWF, van den Boogart A, de Beer R, van Ormondt D. SVD-based quantification of magnetic resonance signals. J Magn Reson 1992. 97: 122-134

This SIVIC class was developed by: Bjoern Menze, Ph.D. Jason C. Crane, Ph.D. Beck Olson

Member Enumeration Documentation

Enumerator
SET_FILTER_TO_ZERO 
SET_SIGNAL_TO_ZERO 
IGNORE_ERROR 

Constructor & Destructor Documentation

svkHSVD ( )
protected
~svkHSVD ( )
protected

Member Function Documentation

void AddDampingFilterRule ( float  dampingThreshold)
void AddFrequencyAndDampingFilterRule ( float  frequencyLimit1PPM,
float  frequencyLimit2PPM,
float  dampingThreshold 
)

Add a filter rule, defined by a frequency range and damping threshold (all frequencies with damping greather than the threshold will be filtered out (fast decaying components). Specify frequency in PPM (order doesn't matter). Filter includes limiting frequencies.

References svkSpecPoint::ConvertPosUnits(), GetDcmHeader(), svkThreadedImageAlgorithm::GetImageDataInput(), svkSpecPoint::Hz, svkSpecPoint::New(), svkSpecPoint::PPM, and svkSpecPoint::SetDcmHeader().

void AddPPMFrequencyFilterRule ( float  frequencyLimit1PPM,
float  frequencyLimit2PPM 
)

Add a filter rule, defined by a frequency range (any damping value). Specify frequency in PPM. Filter includes limiting frequencies.

References svkSpecPoint::ConvertPosUnits(), GetDcmHeader(), svkThreadedImageAlgorithm::GetImageDataInput(), svkSpecPoint::Hz, svkSpecPoint::New(), svkSpecPoint::PPM, and svkSpecPoint::SetDcmHeader().

Referenced by svkHSVD::RemoveH20On(), and svkHSVD::RemoveLipidOn().

void ExportFilterImage ( )

Make sure output data in the same domain as the input.

int FillInputPortInformation ( int  port,
vtkInformation *  info 
)
protectedvirtual
svkMrsImageData * GetFilterImage ( )

Make sure output data in the same domain as the input.

svkMriImageData * GetFitSuccessImage ( )
bool GetFitSuccessStatus ( )
static svkHSVD* New ( )
static
void OnlyFitSpectraInVolumeLocalization ( )

Default is to fit all voxels.

void RemoveH20On ( )
void RemoveLipidOn ( )
int RequestData ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtual
int RequestInformation ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtual
void SetErrorHandlingBehavior ( HSVDBehaviorOnError  errBehavior)

Set the error handling behvior type

void SetErrorHandlingFilterToZeroOn ( )

Sets the error handling behavior such that if a fitting error is detected, the filter for that voxel is set to zero and the output spectrum is set to the original input data. In other words if an error is detected, then no filter is applied to that voxel.

References svkHSVD::SET_FILTER_TO_ZERO.

void SetErrorHandlingIgnoreError ( )

Sets the error handling behavior such that if a fitting error is detected, the filter is still subtracted even though the quality may be poor. This may be useuful to study the quality of the filter.

References svkHSVD::IGNORE_ERROR.

void SetErrorHandlingSignalToZeroOn ( )

Sets the error handling behavior such that if a fitting error is detected, the output spectrum for that voxel is set to zero. This is the default error handling behavior.

References svkHSVD::SET_SIGNAL_TO_ZERO.

void SetModelOrder ( int  modelOrder)

Number of basis functions in HSVD model (default = 25).

void SetSingleThreaded ( )

Switch to single threading (relevant for grid submissions)

void SetThresholdModelDifference ( float  percentDifferenceUp,
float  percentDifferenceDown 
)
void ThreadedRequestData ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector,
vtkImageData ***  inData,
vtkImageData **  outData,
int  extent[6],
int  threadId 
)
protectedvirtual

This method is passed a input and output Datas, and executes the filter algorithm to fill the output from the inputs. It just executes a switch statement to call the correct function for the Datas data types.

vtkTypeMacro ( svkHSVD  ,
svkThreadedImageAlgorithm   
)

Member Data Documentation

int * progress
staticprotected

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