C2DPerfusionAnalysis Class Reference
Perfusion Analysis

A class to run an ICA on a heart perfusion series. More...

`#include <mia/2d/perfusion.hh>`

Collaboration diagram for C2DPerfusionAnalysis:
[legend]

## Public Types

enum | EBoxSegmentation { bs_delta_feature , bs_delta_peak , bs_features , bs_unknown }
| Possible bases for LV-RV heart segmentation. More...

## Public Member Functions

| C2DPerfusionAnalysis (size_t components, bool normalize, bool meanstrip)
P2DFilter | get_crop_filter (float scale, C2DBounds &crop_start, EBoxSegmentation approach, const std::string &save_features="") const
P2DImage | get_feature_image (int index) const
int | get_LV_idx () const
int | get_LV_peak_idx () const __attribute__((deprecated))
int | get_LV_peak_time () const
std::vector< float > | get_mixing_curve (unsigned idx) const
int | get_movement_idx () const
int | get_perfusion_idx () const
std::vector< C2DFImage > | get_references () const
int | get_RV_idx () const
int | get_RV_peak_idx () const __attribute__((deprecated))
int | get_RV_peak_time () const
bool | has_movement () const
bool | run (const std::vector< C2DFImage > &series, const CIndepCompAnalysisFactory &icatool)
void | save_coefs (const std::string &coefs_name) const
void | save_feature_images (const std::string &base_name) const
void | set_approach (CIndepCompAnalysis::EApproach approach)
void | set_max_ica_iterations (size_t maxiter)
void | set_min_movement_frequency (float min_freq)
void | set_use_guess_model ()
| ~C2DPerfusionAnalysis ()

## Static Public Attributes

static TDictMap< EBoxSegmentation > | segmethod_dict

## Detailed Description

A class to run an ICA on a heart perfusion series.

This class provides the tools for ICA based 2D perfusion image series. This class is specifically designed for the analysis of free breathingly aquired myocardial perfusion images.

Definition at line 42 of file perfusion.hh.

## Member Enumeration Documentation

## EBoxSegmentation

enum C2DPerfusionAnalysis::EBoxSegmentation

Possible bases for LV-RV heart segmentation.

Enumerator
bs_delta_feature | Segmentation based on the difference of the LV and RV feature images
bs_delta_peak | Segmentation based on the difference of the LV and RV peak enhancenemt images
bs_features | Segmentation based on the LV and RV feature images
bs_unknown | place holder

Definition at line 46 of file perfusion.hh.

## Constructor & Destructor Documentation

## C2DPerfusionAnalysis()

C2DPerfusionAnalysis::C2DPerfusionAnalysis | ( | size_t | components,
|  | bool | normalize,
|  | bool | meanstrip )

Constructor

Parameters

  components | number of independend components, 0 = auto estimate from [3,4,5,6,7]
  normalize | normalize feature images
  meanstrip | strip mean from mixing time curves

References normalize().

## ~C2DPerfusionAnalysis()

C2DPerfusionAnalysis::~C2DPerfusionAnalysis | ( |  | ) |

## Member Function Documentation

## get_crop_filter()

P2DFilter C2DPerfusionAnalysis::get_crop_filter | ( | float | scale,
|  | C2DBounds & | crop_start,
|  | EBoxSegmentation | approach,
|  | const std::string & | save_features = "" ) const

Evaluate an image cropping filter. This code is specifically designed to deal with the segmentantion of the left heart ventricle in short axis heart MRI The algorithm evaluates the centers of the LV and the RV and uses the distance between both to estimata a bounding box. Some heuristics are used to check whether the segmentation makes sense

Parameters

  | scale | enlargement scale of the bounding box to create the cropping region
  [out] | crop_start | returns the left upper corner of the cropping region that can be used to adjust segmentations
  | approach | on what input data to base thesegmentation on
  | save_features | if not empty store feature images in files with this prefix

Returns
  the cropping filter or C2DFilterPlugin::ProductPtr() if the segmentation fails.

## get_feature_image()

P2DImage C2DPerfusionAnalysis::get_feature_image | ( | int | index | ) | const

Parameters

  index | of the feature image requested, set negative to request the mean image.

Returns
  the requested feature image

References get_feature_image().

Referenced by get_feature_image().

## get_LV_idx()

int C2DPerfusionAnalysis::get_LV_idx | ( |  | ) | const

Returns
  the LV enhancement IC index of -1 if it could not be identified

References get_LV_idx().

Referenced by get_LV_idx().

## get_LV_peak_idx()

int C2DPerfusionAnalysis::get_LV_peak_idx | ( |  | ) | const

Returns
  the LV peak enhancement IC index of -1 if it could not be identified

References get_LV_peak_idx().

Referenced by get_LV_peak_idx().

## get_LV_peak_time()

int C2DPerfusionAnalysis::get_LV_peak_time | ( |  | ) | const

Returns
  the LV maximum peak enhancement time index, or -1 if not identified

References get_LV_peak_time().

Referenced by get_LV_peak_time().

## get_mixing_curve()

std::vector< float > C2DPerfusionAnalysis::get_mixing_curve | ( | unsigned | idx | ) | const

Obtain the mixing curve of a vertain component

Parameters

  idx | index of the requested mixing series;

Returns
  the mixing curve

References get_mixing_curve(), and NS_MIA_END.

Referenced by get_mixing_curve().

## get_movement_idx()

int C2DPerfusionAnalysis::get_movement_idx | ( |  | ) | const

Returns
  the perfusion enhancement IC index of -1 if it could not be identified

References get_movement_idx().

Referenced by get_movement_idx().

## get_perfusion_idx()

int C2DPerfusionAnalysis::get_perfusion_idx | ( |  | ) | const

Returns
  the perfusion enhancement IC index of -1 if it could not be identified

References get_perfusion_idx().

Referenced by get_perfusion_idx().

## get_references()

std::vector< C2DFImage > C2DPerfusionAnalysis::get_references | ( |  | ) | const

Create uncropped reference images that try to omit the movement component in the image series.

## get_RV_idx()

int C2DPerfusionAnalysis::get_RV_idx | ( |  | ) | const

Returns
  the RV enhancement IC index of -1 if it could not be identified

References get_RV_idx().

Referenced by get_RV_idx().

## get_RV_peak_idx()

int C2DPerfusionAnalysis::get_RV_peak_idx | ( |  | ) | const

Returns
  the RV peak enhancement IC index of -1 if it could not be identified

## get_RV_peak_time()

int C2DPerfusionAnalysis::get_RV_peak_time | ( |  | ) | const

Returns
  the RV maximum peak enhancement time index, or -1 if not identified

References get_RV_peak_time().

Referenced by get_RV_peak_time().

## has_movement()

bool C2DPerfusionAnalysis::has_movement | ( |  | ) | const

Returns
  true if a periodic component could be identified in the given series

## run()

bool C2DPerfusionAnalysis::run | ( | const std::vector< C2DFImage > & | series,
|  | const CIndepCompAnalysisFactory & | icatool )

Run the ICA analysis - keeps a copy of the image series

Parameters

  series | image series should contain more images thennumber of requested components
  icatool | Generator for the used ICA analyis method

## save_coefs()

void C2DPerfusionAnalysis::save_coefs | ( | const std::string & | coefs_name | ) | const

Save the mixin matrix to a file.

Parameters

  coefs_name | output file name

References save_coefs().

Referenced by save_coefs().

## save_feature_images()

void C2DPerfusionAnalysis::save_feature_images | ( | const std::string & | base_name | ) | const

Save the feature image to some PNG files.

Parameters

  base_name | output file name base

References save_feature_images().

Referenced by save_feature_images().

## set_approach()

void C2DPerfusionAnalysis::set_approach | ( | CIndepCompAnalysis::EApproach | approach | ) |

Set the ICA seperation approach

Parameters

  approach | FICA_APPROACH_SYMM or FICA_APPROACH_DEFL

Todo
  the parameter should be an enum

## set_max_ica_iterations()

void C2DPerfusionAnalysis::set_max_ica_iterations | ( | size_t | maxiter | ) |

Set the number of ICA iterations

Parameters

  maxiter |

## set_min_movement_frequency()

void C2DPerfusionAnalysis::set_min_movement_frequency | ( | float | min_freq | ) |

Set the minimum mean frequency (in breath per heart beat) that decides whether a slope is considered to be periodic.

Parameters

  min_freq | The new minimum frequency, a value < 0.0 disables the test (this is the default)

Remarks
  this values is simply passed through to the wavelet slope classifier

References set_min_movement_frequency().

Referenced by set_min_movement_frequency().

## set_use_guess_model()

void C2DPerfusionAnalysis::set_use_guess_model | ( |  | ) |

Use an experimental model to create a initial guess.

References set_use_guess_model().

Referenced by set_use_guess_model().

## Field Documentation

## segmethod_dict

TDictMap<EBoxSegmentation> C2DPerfusionAnalysis::segmethod_dict

static

Dictionary for segmentation method flags

Definition at line 159 of file perfusion.hh.

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

- perfusion.hh