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
|
#ifndef gra_FeaturePointsMatch_H__
#define gra_FeaturePointsMatch_H__
#include "FeaturePoint.h"
#include "../oo/ObjBase.h"
#include <utility>
#include <cstdlib>
namespace meow {
struct FeaturePointIndexPair {
std::pair<size_t, size_t> from;
std::pair<size_t, size_t> to;
FeaturePointIndexPair() {
}
FeaturePointIndexPair(size_t ff, size_t fs,
size_t tf, size_t ts) {
from.first = ff;
from.second = fs;
to.first = tf;
to.second = ts;
}
bool operator==(FeaturePointIndexPair const& p) const {
return (from == p.from && to == p.to);
}
};
typedef std::vector<FeaturePointIndexPair> FeaturePointIndexPairs;
template<class Scalar, class Description>
class FeaturePointsMatch: public ObjBase {
protected:
FeaturePointsMatch() {
}
public:
typedef std::vector<FeaturePoint<Scalar, Description> > FeaturePoints;
typedef std::vector<FeaturePoints > FeaturePointss;
virtual ~FeaturePointsMatch() {
}
virtual FeaturePointIndexPairs match(size_t dimension,
FeaturePoints const& from,
FeaturePoints const& to) const = 0;
virtual FeaturePointIndexPairs match(size_t dimension,
FeaturePoints const& from,
FeaturePointss const& to) const = 0;
virtual FeaturePointIndexPairs match(size_t dimension,
FeaturePointss const& from,
FeaturePointss const& to) const = 0;
virtual FeaturePointIndexPairs match(size_t dimension,
FeaturePointss const& fpss) const = 0;
};
}
#endif // gra_FeaturePointsMatch_H__
|