A class to run an ICA on a heart perfusion series.
More...
#include <mia/2d/perfusion.hh>
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.
◆ 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 45 of file perfusion.hh.
◆ 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 |
◆ ~C2DPerfusionAnalysis()
C2DPerfusionAnalysis::~C2DPerfusionAnalysis |
( |
| ) |
|
◆ get_crop_filter()
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
◆ get_LV_idx()
int C2DPerfusionAnalysis::get_LV_idx |
( |
| ) |
const |
- Returns
- the LV enhancement IC index of -1 if it could not be identified
◆ 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
◆ get_LV_peak_time()
int C2DPerfusionAnalysis::get_LV_peak_time |
( |
| ) |
const |
- Returns
- the LV maximum peak enhancement time index, or -1 if not identified
◆ 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
◆ get_movement_idx()
int C2DPerfusionAnalysis::get_movement_idx |
( |
| ) |
const |
- Returns
- the perfusion enhancement IC index of -1 if it could not be identified
◆ get_perfusion_idx()
int C2DPerfusionAnalysis::get_perfusion_idx |
( |
| ) |
const |
- Returns
- the perfusion enhancement IC index of -1 if it could not be identified
◆ 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
◆ 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
◆ 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 |
◆ 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 |
◆ 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
-
◆ 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) |
◆ set_use_guess_model()
void C2DPerfusionAnalysis::set_use_guess_model |
( |
| ) |
|
Use an experimental model to create a initial guess.
◆ segmethod_dict
Dictionary for segmentation method flags
Definition at line 158 of file perfusion.hh.
The documentation for this class was generated from the following file: