licornea_tools
cg_model_optical_flow_slopes.cc
Go to the documentation of this file.
1 #include <string>
2 #include <map>
3 #include <cmath>
5 #include "../lib/args.h"
6 #include "../lib/misc.h"
7 #include "../lib/json.h"
8 #include "../lib/dataset.h"
9 #include "../lib/opencv.h"
10 #include "../lib/intrinsics.h"
11 
12 using namespace tlz;
13 
14 
15 int main(int argc, const char* argv[]) {
16  get_args(argc, argv, "feature_points.json intrinsics.json rotation.json out_predicted_slopes.json");
18  intrinsics intr = intrinsics_arg();
19  mat33 R = decode_mat(json_arg());
20  std::string out_predicted_slopes_filename = out_filename_arg();
21 
22  fpoints = undistort(fpoints, intr);
23 
24  std::cout << "saving predicted slopes" << std::endl;
25  feature_slopes fslopes(fpoints);
26  for(const auto& kv : fslopes.points) {
27  const std::string& feature_name = kv.first;
28  const feature_point& fpoint = kv.second;
29  feature_slope& fslope = fslopes.slopes[feature_name];
30  fslope.horizontal = model_horizontal_slope(fpoint.position, intr.K, R);
31  fslope.vertical = model_vertical_slope(fpoint.position, intr.K, R);
32  }
33  export_json_file(encode_feature_slopes(fslopes), out_predicted_slopes_filename);
34 }
json encode_feature_slopes(const feature_slopes &fslopes)
real model_vertical_slope(const vec2 &undistorted_point, const mat33 &K, const mat33 &R)
real model_horizontal_slope(const vec2 &undistorted_point, const mat33 &K, const mat33 &R)
Points of different features, on one view.
std::map< std::string, feature_point > points
cv::Mat_< real > decode_mat(const json &j)
Definition: json.cc:32
intrinsics intrinsics_arg()
Definition: intrinsics.cc:119
json json_arg()
Definition: json.h:34
cv::Matx< real, 3, 3 > mat33
Definition: common.h:26
void export_json_file(const json &j, const std::string &filename, bool compact)
Definition: json.cc:9
feature_points undistort(const feature_points &dist_fpoints, const intrinsics &intr)
int main(int argc, const char *argv[])
std::string out_filename_arg()
Definition: args.cc:104
std::map< std::string, feature_slope > slopes
feature_points feature_points_arg()
void get_args(int argc, const char *argv[], const std::string &usage)
Definition: args.cc:49