perfusion.hh
Go to the documentation of this file.
/* -*- mia-c++ -*-
*
* This file is part of MIA - a toolbox for medical image analysis
* Copyright (c) Leipzig, Madrid 1999-2017 Gert Wollny
*
* MIA is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MIA; if not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef mia_2d_perfusion_hh
#define mia_2d_perfusion_hh
#include <vector>
#include <mia/core/dictmap.hh>
#include <mia/core/waveletslopeclassifier.hh>
#include <mia/core/ica.hh>
#include <mia/2d/image.hh>
#include <mia/2d/filter.hh>
NS_MIA_BEGIN
class EXPORT_2DMYOCARD C2DPerfusionAnalysis
{
public:
enum EBoxSegmentation {
bs_delta_feature,
bs_delta_peak,
bs_features,
bs_unknown
};
C2DPerfusionAnalysis(size_t components, bool normalize,
bool meanstrip);
void set_max_ica_iterations(size_t maxiter);
~C2DPerfusionAnalysis();
bool run(const std::vector<C2DFImage>& series, const CIndepCompAnalysisFactory& icatool);
bool has_movement() const;
P2DFilter get_crop_filter(float scale, C2DBounds& crop_start,
EBoxSegmentation approach,
const std::string& save_features = "") const;
std::vector<C2DFImage> get_references() const;
void set_approach(CIndepCompAnalysis::EApproach approach);
int get_RV_peak_idx() const __attribute__((deprecated));
int get_RV_idx() const;
int get_LV_peak_idx() const __attribute__((deprecated));
int get_LV_idx() const;
void set_min_movement_frequency(float min_freq);
int get_perfusion_idx() const;
int get_movement_idx() const;
static TDictMap<EBoxSegmentation> segmethod_dict;
void set_use_guess_model();
void save_coefs(const std::string& coefs_name)const;
void save_feature_images(const std::string& base_name)const;
P2DImage get_feature_image(int index) const;
int get_LV_peak_time() const;
int get_RV_peak_time() const;
std::vector<float> get_mixing_curve(unsigned idx) const;
private:
struct C2DPerfusionAnalysisImpl *impl;
};
NS_MIA_END
#endif
filter.hh
image.hh
P2DImage
C2DImage::Pointer P2DImage
Shared pointer representation of the 2D Image.
Definition 2d/image.hh:120
C2DBounds
T2DVector< unsigned int > C2DBounds
unsigned int valued 2D vector - used as 2D size parameter
Definition 2d/vector.hh:540
C2DPerfusionAnalysis::get_RV_idx
int get_RV_idx() const
C2DPerfusionAnalysis::get_LV_idx
int get_LV_idx() const
C2DPerfusionAnalysis::get_LV_peak_time
int get_LV_peak_time() const
C2DPerfusionAnalysis::EBoxSegmentation
EBoxSegmentation
Possible bases for LV-RV heart segmentation.
Definition perfusion.hh:46
C2DPerfusionAnalysis::bs_delta_peak
@ bs_delta_peak
Definition perfusion.hh:48
C2DPerfusionAnalysis::bs_features
@ bs_features
Definition perfusion.hh:49
C2DPerfusionAnalysis::bs_delta_feature
@ bs_delta_feature
Definition perfusion.hh:47
C2DPerfusionAnalysis::bs_unknown
@ bs_unknown
Definition perfusion.hh:50
C2DPerfusionAnalysis::set_min_movement_frequency
void set_min_movement_frequency(float min_freq)
C2DPerfusionAnalysis::get_crop_filter
P2DFilter get_crop_filter(float scale, C2DBounds &crop_start, EBoxSegmentation approach, const std::string &save_features="") const
C2DPerfusionAnalysis::set_max_ica_iterations
void set_max_ica_iterations(size_t maxiter)
C2DPerfusionAnalysis::segmethod_dict
static TDictMap< EBoxSegmentation > segmethod_dict
Definition perfusion.hh:159
C2DPerfusionAnalysis::get_RV_peak_idx
int get_RV_peak_idx() const __attribute__((deprecated))
C2DPerfusionAnalysis::get_feature_image
P2DImage get_feature_image(int index) const
C2DPerfusionAnalysis::save_feature_images
void save_feature_images(const std::string &base_name) const
C2DPerfusionAnalysis::~C2DPerfusionAnalysis
~C2DPerfusionAnalysis()
C2DPerfusionAnalysis::get_mixing_curve
std::vector< float > get_mixing_curve(unsigned idx) const
C2DPerfusionAnalysis::get_movement_idx
int get_movement_idx() const
C2DPerfusionAnalysis::run
bool run(const std::vector< C2DFImage > &series, const CIndepCompAnalysisFactory &icatool)
C2DPerfusionAnalysis::has_movement
bool has_movement() const
C2DPerfusionAnalysis::set_use_guess_model
void set_use_guess_model()
C2DPerfusionAnalysis::get_RV_peak_time
int get_RV_peak_time() const
C2DPerfusionAnalysis::get_perfusion_idx
int get_perfusion_idx() const
C2DPerfusionAnalysis::get_references
std::vector< C2DFImage > get_references() const
C2DPerfusionAnalysis::set_approach
void set_approach(CIndepCompAnalysis::EApproach approach)
C2DPerfusionAnalysis::get_LV_peak_idx
int get_LV_peak_idx() const __attribute__((deprecated))
C2DPerfusionAnalysis::C2DPerfusionAnalysis
C2DPerfusionAnalysis(size_t components, bool normalize, bool meanstrip)
C2DPerfusionAnalysis::save_coefs
void save_coefs(const std::string &coefs_name) const
TDictMap
A mapper from emums to string values. - usefull for names flags.
Definition dictmap.hh:46
ica.hh
EXPORT_2DMYOCARD
#define EXPORT_2DMYOCARD
Definition defines2d.hh:53
NS_MIA_BEGIN
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
Definition defines.hh:33
NS_MIA_END
#define NS_MIA_END
conveniance define to end the mia namespace
Definition defines.hh:36
dictmap.hh
P2DFilter
std::shared_ptr< C2DFilter > P2DFilter
Definition 2d/filter.hh:48
std
Definition gsl_iterator.hh:324
normalize
std::shared_ptr< Image > normalize(const Image &image)
a normalizer for image intensities
Definition normalize.hh:135
waveletslopeclassifier.hh