licornea_tools
dataset.h
Go to the documentation of this file.
1 #ifndef LICORNEA_DATASET_H_
2 #define LICORNEA_DATASET_H_
3 
4 #include <string>
5 #include <utility>
6 #include <iosfwd>
7 #include "border.h"
8 #include "json.h"
9 #include "border.h"
10 #include "args.h"
11 
12 namespace tlz {
13 
14 class dataset;
15 
16 class dataset_view {
17 private:
18  const dataset& dataset_;
19  int x_;
20  int y_;
21  std::string group_;
22 
23  int local_filename_x_() const;
24  int local_filename_y_() const;
25  std::string format_name(const std::string& tpl) const;
26  std::string format_filename(const std::string& tpl) const;
27 
28 public:
29  dataset_view(const dataset&, int x, int y, const std::string& grp = "");
30 
31  const dataset& set() const { return dataset_; }
32 
33  int x() const { return x_; }
34  int y() const { return y_; }
35 
36  const json& local_parameters() const;
37  std::string local_filename(const std::string& name, const std::string& def = "") const;
38 
39  std::string camera_name() const;
40 
41  std::string image_filename() const;
42  std::string depth_filename() const;
43  std::string mask_filename() const;
44 
45  std::string group() const;
46  dataset_view group_view(const std::string& name) const;
47 };
48 
49 
51 private:
52  const dataset& dataset_;
53  std::string group_;
54 
55 public:
56  dataset_group(const dataset&, const std::string& grp);
57 
58  const dataset& set() const { return dataset_; }
59 
60  const json& parameters() const;
61  const json& operator[](const std::string& key) const
62  { return parameters()[key]; }
63 
64  border image_border() const;
65  cv::Size image_size_with_border() const;
66 
67  dataset_view view(int x) const;
68  dataset_view view(int x, int y) const;
69  dataset_view view(view_index) const;
70 };
71 
72 
73 class dataset {
74 private:
75  json parameters_;
76  std::string dirname_;
77  std::vector<int> x_index_range_;
78  std::vector<int> y_index_range_;
79 
80 public:
81  explicit dataset(const std::string& parameters_filename);
82 
83  bool is_1d() const;
84  bool is_2d() const;
85 
86  const json& parameters() const { return parameters_; }
87  const json& operator[](const std::string& key) const
88  { return parameters()[key]; }
89 
90  std::string filepath(const std::string& relpath) const;
91 
92  int image_width() const;
93  int image_height() const;
94  cv::Size image_size() const;
95  std::string cameras_filename() const;
96 
97  int x_min() const;
98  int x_step() const;
99  int x_max() const;
100  bool x_valid(int x) const;
101  int x_count() const;
102  int x_mid() const;
103  std::vector<int> x_indices() const;
104 
105  int y_min() const;
106  int y_step() const;
107  int y_max() const;
108  bool y_valid(int y) const;
109  int y_count() const;
110  int y_mid() const;
111  std::vector<int> y_indices() const;
112 
113  bool valid(view_index) const;
114  std::vector<view_index> indices() const;
115 
116  dataset_group group(const std::string& grp) const;
117 
118  dataset_view view(int x) const;
119  dataset_view view(int x, int y) const;
120  dataset_view view(view_index) const;
121 };
122 
124 
125 }
126 
127 #endif
std::string mask_filename() const
Definition: dataset.cc:72
std::string image_filename() const
Definition: dataset.cc:64
const json & parameters() const
Definition: dataset.h:86
dataset_view group_view(const std::string &name) const
Definition: dataset.cc:80
std::string depth_filename() const
Definition: dataset.cc:68
int x() const
Definition: dataset.h:33
dataset dataset_arg()
Definition: dataset.cc:297
const json & operator[](const std::string &key) const
Definition: dataset.h:61
std::string local_filename(const std::string &name, const std::string &def="") const
Definition: dataset.cc:54
int y() const
Definition: dataset.h:34
std::string group() const
Definition: dataset.cc:76
std::string camera_name() const
Definition: dataset.cc:60
const json & local_parameters() const
Definition: dataset.cc:49
nlohmann::json json
Definition: json.h:11
const json & operator[](const std::string &key) const
Definition: dataset.h:87
dataset_view(const dataset &, int x, int y, const std::string &grp="")
Definition: dataset.cc:45