-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcorrespondences.cpp
122 lines (106 loc) · 4.08 KB
/
correspondences.cpp
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include <iostream>
#include "correspondences.h"
FrameToFrameCorrespondences::FrameToFrameCorrespondences(const std::vector<cv::Point2f>& points_1,
const std::vector<cv::Point2f>& points_2,
const std::vector<size_t>& point_index_1,
const std::vector<size_t>& point_index_2)
: points_1_{points_1}
, points_2_{points_2}
, point_index_1_{point_index_1}
, point_index_2_{point_index_2}
{
if (points_1_.size() != points_2_.size()
&& points_1_.size() != point_index_1_.size()
&& point_index_1_.size() != point_index_2_.size())
{
throw std::runtime_error{"Corresponding points must have same size"};
}
}
FrameToFrameCorrespondences::FrameToFrameCorrespondences(std::vector<cv::Point2f>&& frame_1,
std::vector<cv::Point2f>&& frame_2,
std::vector<size_t>&& point_index_1,
std::vector<size_t>&& point_index_2)
: points_1_{std::move(frame_1)}
, points_2_{std::move(frame_2)}
, point_index_1_{std::move(point_index_1)}
, point_index_2_{std::move(point_index_2)}
{
if (points_1_.size() != points_2_.size()
&& points_1_.size() != point_index_1_.size()
&& point_index_1_.size() != point_index_2_.size())
{
throw std::runtime_error{"Corresponding points must have same size"};
}
}
size_t FrameToFrameCorrespondences::size() const
{
return points_1_.size();
}
const std::vector<cv::Point2f>& FrameToFrameCorrespondences::points_1() const
{
return points_1_;
}
const std::vector<cv::Point2f>& FrameToFrameCorrespondences::points_2() const
{
return points_2_;
}
const std::vector<size_t>& FrameToFrameCorrespondences::point_index_1() const
{
return point_index_1_;
}
const std::vector<size_t>& FrameToFrameCorrespondences::point_index_2() const
{
return point_index_2_;
}
MapToFrameCorrespondences::MapToFrameCorrespondences(const std::vector<cv::Point3f>& map_points,
const std::vector<cv::Point2f>& frame_points,
const std::vector<size_t>& map_point_indices,
const std::vector<size_t>& frame_point_indices)
: map_points_{map_points}
, frame_points_{frame_points}
, map_point_indices_{map_point_indices}
, frame_point_indices_{frame_point_indices}
{
if (map_points_.size() != frame_points_.size()
&& map_points_.size() != map_point_indices_.size()
&& map_point_indices_.size() != frame_point_indices_.size())
{
throw std::runtime_error{"Corresponding points must have same size"};
}
}
MapToFrameCorrespondences::MapToFrameCorrespondences(std::vector<cv::Point3f>&& map_points,
std::vector<cv::Point2f>&& frame_points,
std::vector<size_t>&& map_point_indices,
std::vector<size_t>&& frame_point_indices)
: map_points_{std::move(map_points)}
, frame_points_{std::move(frame_points)}
, map_point_indices_{std::move(map_point_indices)}
, frame_point_indices_{std::move(frame_point_indices)}
{
if (map_points_.size() != frame_points_.size()
&& map_points_.size() != map_point_indices_.size()
&& map_point_indices_.size() != frame_point_indices_.size())
{
throw std::runtime_error{"Corresponding points must have same size"};
}
}
const std::vector<cv::Point3f>& MapToFrameCorrespondences::map_points() const
{
return map_points_;
}
const std::vector<cv::Point2f>& MapToFrameCorrespondences::frame_points() const
{
return frame_points_;
}
const std::vector<size_t>& MapToFrameCorrespondences::map_point_indices() const
{
return map_point_indices_;
}
const std::vector<size_t>& MapToFrameCorrespondences::frame_point_indices() const
{
return frame_point_indices_;
}
size_t MapToFrameCorrespondences::size() const
{
return map_points_.size();
}