cpd  0.5.1
Coherent Point Drift: C++ library for point set registration
gauss_transform.hpp
Go to the documentation of this file.
1 // cpd - Coherent Point Drift
2 // Copyright (C) 2017 Pete Gadomski <pete.gadomski@gmail.com>
3 //
4 // This program is free software; you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation; either version 2 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License along
15 // with this program; if not, write to the Free Software Foundation, Inc.,
16 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 
22 
23 #pragma once
24 
25 #include <cpd/matrix.hpp>
26 #include <memory>
27 
28 namespace cpd {
29 
32 struct Probabilities {
40  double l;
43 };
44 
47 public:
49  static std::unique_ptr<GaussTransform> make_default();
50 
52  virtual Probabilities compute(const Matrix& fixed, const Matrix& moving,
53  double sigma2, double outliers) const = 0;
54 };
55 
58 public:
59  Probabilities compute(const Matrix& fixed, const Matrix& moving,
60  double sigma2, double outliers) const;
61 };
62 } // namespace cpd
Abstract base class for Gauss transforms.
Definition: gauss_transform.hpp:46
Basic typedefs for our flavors of Eigen matrices.
Vector pt1
The probability matrix, transposes, multiplied by the identity matrix.
Definition: gauss_transform.hpp:36
Eigen::MatrixXd Matrix
Our base matrix class.
Definition: matrix.hpp:29
Eigen::VectorXd Vector
Typedef for our specific type of vector.
Definition: matrix.hpp:32
Eigen::Matrix< Matrix::Index, Eigen::Dynamic, 1 > IndexVector
Typedef for an index vector, used to index other matrices.
Definition: matrix.hpp:35
Vector p1
The probability matrix, multiplied by the identity matrix.
Definition: gauss_transform.hpp:34
The direct Gauss transform.
Definition: gauss_transform.hpp:57
IndexVector correspondence
The correspondence vector between the two datasets.
Definition: gauss_transform.hpp:42
Top-level cpd namespace.
Definition: affine.hpp:26
Probability matrices produced by comparing two data sets with a GaussTransform.
Definition: gauss_transform.hpp:32
double l
The total error.
Definition: gauss_transform.hpp:40
Matrix px
The probability matrix multiplied by the fixed points.
Definition: gauss_transform.hpp:38