16 #include "MeshFitter.h" 26 #pragma clang diagnostic push 27 #pragma clang diagnostic ignored "-Wpadded" 37 using DisplacementsWeightsPair = std::pair<Eigen::VectorXf, Eigen::VectorXf>;
44 template <
class DerivedN,
class DerivedL,
class DerivedM>
45 DisplacementsWeightsPair
46 operator()(Eigen::MatrixBase<DerivedN>
const &N,
47 Eigen::MatrixBase<DerivedL>
const &labels,
48 Eigen::MatrixBase<DerivedM>
const &measurements,
49 std::size_t nonDecrease,
float &effectiveSigmaS);
54 template <
class DerivedN,
class DerivedL,
class DerivedM>
55 Eigen::Matrix<typename DerivedM::Scalar, Eigen::Dynamic, 1>
57 Eigen::MatrixBase<DerivedL>
const &labels,
58 Eigen::MatrixBase<DerivedM>
const &measurements);
63 template <
class DerivedN,
class DerivedL,
class DerivedM>
65 Eigen::MatrixBase<DerivedL>
const &labels,
66 Eigen::MatrixBase<DerivedM>
const &measurements);
72 return modelSamplingPositions_;
76 using ModelSamplingPositionMatrix = Eigen::Matrix<float, Eigen::Dynamic, 4>;
81 ModelSamplingPositionMatrix modelSamplingPositions_;
84 #pragma clang diagnostic pop 86 extern template DisplacementOptimizer::DisplacementsWeightsPair
87 DisplacementOptimizer::
88 operator()<NormalMatrix<float>, LabelVector, Eigen::VectorXf>(
89 Eigen::MatrixBase<NormalMatrix<float>>
const &,
90 Eigen::MatrixBase<LabelVector>
const &,
91 Eigen::MatrixBase<Eigen::VectorXf>
const &, std::size_t,
float &);
93 extern template DisplacementOptimizer::DisplacementsWeightsPair
94 DisplacementOptimizer::
95 operator()<NormalMatrix<double>, LabelVector, Eigen::VectorXd>(
96 Eigen::MatrixBase<NormalMatrix<double>>
const &,
97 Eigen::MatrixBase<LabelVector>
const &,
98 Eigen::MatrixBase<Eigen::VectorXd>
const &, std::size_t,
float &);
100 extern template DisplacementOptimizer::DisplacementsWeightsPair
101 DisplacementOptimizer::operator()<
102 Eigen::Transpose<const Eigen::Map<Eigen::Matrix<float, 3, Eigen::Dynamic>>>,
103 Eigen::Map<LabelVector>, Eigen::Map<Eigen::VectorXf>>(
104 Eigen::MatrixBase<Eigen::Transpose<
105 const Eigen::Map<Eigen::Matrix<float, 3, Eigen::Dynamic>>>>
const &,
106 Eigen::MatrixBase<Eigen::Map<LabelVector>>
const &,
107 Eigen::MatrixBase<Eigen::Map<Eigen::VectorXf>>
const &, std::size_t,
110 extern template DisplacementOptimizer::DisplacementsWeightsPair
111 DisplacementOptimizer::operator()<
112 Eigen::Transpose<Eigen::Map<Eigen::Matrix<float, 3, Eigen::Dynamic>>>,
113 Eigen::Map<LabelVector>, Eigen::Map<Eigen::VectorXf>>(
114 Eigen::MatrixBase<Eigen::Transpose<
115 Eigen::Map<Eigen::Matrix<float, 3, Eigen::Dynamic>>>>
const &,
116 Eigen::MatrixBase<Eigen::Map<LabelVector>>
const &,
117 Eigen::MatrixBase<Eigen::Map<Eigen::VectorXf>>
const &, std::size_t,
121 Eigen::Transpose<const Eigen::Map<Eigen::Matrix<float, 3, Eigen::Dynamic>>>,
122 Eigen::Map<LabelVector>, Eigen::Map<Eigen::VectorXf>>(
123 Eigen::MatrixBase<Eigen::Transpose<
124 const Eigen::Map<Eigen::Matrix<float, 3, Eigen::Dynamic>>>>
const &,
125 Eigen::MatrixBase<Eigen::Map<LabelVector>>
const &,
126 Eigen::MatrixBase<Eigen::Map<Eigen::VectorXf>>
const &);
128 extern template Eigen::Matrix<float, Eigen::Dynamic, 1>
130 Eigen::Transpose<const Eigen::Map<Eigen::Matrix<float, 3, Eigen::Dynamic>>>,
131 Eigen::Map<LabelVector>, Eigen::Map<Eigen::VectorXf>>(
132 Eigen::MatrixBase<Eigen::Transpose<
133 const Eigen::Map<Eigen::Matrix<float, 3, Eigen::Dynamic>>>>
const &,
134 Eigen::MatrixBase<Eigen::Map<LabelVector>>
const &,
135 Eigen::MatrixBase<Eigen::Map<Eigen::VectorXf>>
const &);
Configuration type for MeshFitter.
Definition: MeshFitter.h:39
Name namespace for CortidQCT library.
Definition: CortidQCT.h:23
float logLikelihood(Eigen::MatrixBase< DerivedN > const &N, Eigen::MatrixBase< DerivedL > const &labels, Eigen::MatrixBase< DerivedM > const &measurements)
Compute the log likelihood of the current model.
Definition: DisplacementOptimizer.cpp:220
DisplacementsWeightsPair operator()(Eigen::MatrixBase< DerivedN > const &N, Eigen::MatrixBase< DerivedL > const &labels, Eigen::MatrixBase< DerivedM > const &measurements, std::size_t nonDecrease, float &effectiveSigmaS)
Compute the optimal displacement and the corresponding weights.
Definition: DisplacementOptimizer.cpp:89
This header contains mesh related helper functions.
Type representing the measurement model.
Definition: MeasurementModel.h:33
This private head contains the definition of the Sampler type.
Eigen::Matrix< typename DerivedM::Scalar, Eigen::Dynamic, 1 > logLikelihoodVector(Eigen::MatrixBase< DerivedN > const &N, Eigen::MatrixBase< DerivedL > const &labels, Eigen::MatrixBase< DerivedM > const &measurements)
Computes the per-veretx log likelihood of the current model.
Definition: DisplacementOptimizer.cpp:192
Definition: Sampler.h:133
This header contains the definition of the MeasurementModel type.
auto const & modelSamplingPositions() const noexcept
Returns the model sampling positions used by the optimizer.
Definition: DisplacementOptimizer.h:71
Definition: DisplacementOptimizer.h:35