/usr/include/mia-2.4/mia/2d/groundtruthproblem.hh is in libmia-2.4-dev 2.4.3-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | /* -*- mia-c++ -*-
*
* This file is part of MIA - a toolbox for medical image analysis
* Copyright (c) Leipzig, Madrid 1999-2016 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_ground_truth_problem_hh
#define mia_2d_ground_truth_problem_hh
#include <mia/core/minimizer.hh>
#include <mia/2d/correlation_weight.hh>
NS_MIA_BEGIN
/**
@ingroup perf
\brief a class for the evaluation of a pseudo ground truth of a perfusion series
This class implements the optimization problem required for Ground Thruth Estimation
as described in
Chao Li and Ying Sun, Nonrigid Registration of Myocardial Perfusion MRI Using Pseudo Ground Truth,
In Proc. Medical Image Computing and Computer-Assisted Intervention – MICCAI 2009,
165-172, 2009
For its use see the class C2DGroundTruthEvaluator.
*/
class EXPORT_2D GroundTruthProblem : public CMinimizer::Problem {
public:
/**
Create the ground thruth estimator with the given parameters
(see the paper for details on \f$\alpha\f$ and \f$\beta\f$)
@param a parameter \f$\alpha\f$
@param b parameter \f$\beta\f$
@param slice_size 2D image size of the series images,
@param nframes number of frames in the perfusion series
@param left_side
@param corr
*/
GroundTruthProblem(double a, double b,
const C2DBounds& slice_size,
size_t nframes,
const CDoubleVector& left_side,
const CCorrelationEvaluator::result_type& corr);
/**
Set the parametes \f$\alpha\f$ and \f$\beta\f$
*/
void set_alpha_beta(double a, double b);
protected:
///@returns a reference to the spacial gradient
const std::vector<double>& get_spacial_gradient() const;
///@returns a reference to the temporal gradient
const std::vector<double>& get_time_derivative() const;
private:
virtual double do_f(const CDoubleVector& x);
virtual void do_df(const CDoubleVector& x, CDoubleVector& g);
virtual double do_fdf(const CDoubleVector& x, CDoubleVector& g);
size_t do_size() const;
double evaluate_spacial_gradients(const CDoubleVector& x);
double evaluate_time_gradients(const CDoubleVector& x);
double evaluate_slice_gradient(CDoubleVector::const_iterator ii, std::vector<double>::iterator iout);
std::vector<double> m_spacial_gradient;
std::vector<double> m_time_derivative;
double m_a;
double m_b;
const C2DBounds& m_slice_size;
size_t m_nframes;
size_t m_frame_size;
const CDoubleVector& m_left_side;
const CCorrelationEvaluator::result_type& m_corr;
};
NS_MIA_END
#endif
|