licornea_tools
cg_visualize_fslopes.cc
Go to the documentation of this file.
1 #include <iostream>
2 #include <fstream>
3 #include <utility>
4 #include <random>
5 #include <vector>
6 #include <string>
9 #include "../lib/args.h"
10 #include "../lib/json.h"
11 #include "../lib/border.h"
12 #include "../lib/dataset.h"
13 #include "../lib/opencv.h"
14 #include "../lib/random_color.h"
15 #include "../lib/assert.h"
16 
17 using namespace tlz;
18 
19 
20 int main(int argc, const char* argv[]) {
21  get_args(argc, argv, "dataset_parameters.json slopes.json out_visualization.png [width=200] [exaggeration=1] [dataset_group]");
22  dataset datas = dataset_arg();
24  std::string visualization_filename = out_filename_arg();
25  int seg_width = int_opt_arg(200);
26  real exaggeration = real_opt_arg(1.0);
27  std::string dataset_group_name = string_opt_arg("");
28 
29  dataset_group datag = datas.group(dataset_group_name);
30 
31  std::cout << "loading background image" << std::endl;
32  const cv::Vec3b background_color(0, 0, 0);
33  cv::Mat_<cv::Vec3b> back_img(datag.image_size_with_border(), background_color);
34  if(fslopes.view_idx) {
35  view_index view_index = fslopes.view_idx;
36  std::string image_filename = datag.view(view_index).image_filename();
37  cv::Mat_<cv::Vec3b> img = cv::imread(image_filename, CV_LOAD_IMAGE_COLOR);
38  cv::Mat_<uchar> gray_img;
39  cv::cvtColor(img, gray_img, CV_BGR2GRAY);
40  cv::cvtColor(gray_img, back_img, CV_GRAY2BGR);
41  }
42 
43  std::cout << "drawing feature slopes" << std::endl;
44  cv::Mat_<cv::Vec3b> img = visualize_feature_points(fslopes, back_img, datag.image_border());
45  img = visualize_feature_slopes(fslopes, img, seg_width, exaggeration, 2, datag.image_border());
46 
47  std::cout << "saving output visualization image" << std::endl;
48  cv::imwrite(visualization_filename, img);
49 }
50 
long int_opt_arg(long def)
Definition: args.h:50
double real_opt_arg(double def)
Definition: args.h:54
cv::Size image_size_with_border() const
Definition: dataset.cc:101
std::string image_filename() const
Definition: dataset.cc:64
border image_border() const
Definition: dataset.cc:96
dataset_view view(int x) const
Definition: dataset.cc:105
feature_slopes feature_slopes_arg()
const cv::Vec3b background_color(0, 0, 0)
int main(int argc, const char *argv[])
cv::Mat_< cv::Vec3b > visualize_feature_slopes(const feature_slopes &fslopes, const cv::Mat_< cv::Vec3b > &back_img, int width, real exaggeration, int thickness, const border &bord)
dataset dataset_arg()
Definition: dataset.cc:297
double real
Definition: common.h:16
std::string out_filename_arg()
Definition: args.cc:104
cv::Mat_< cv::Vec3b > visualize_feature_points(const feature_points &fpoints, const cv::Mat_< cv::Vec3b > &back_img, const border &bord)
dataset_group group(const std::string &grp) const
Definition: dataset.cc:265
std::string string_opt_arg(const std::string &def="")
Definition: args.h:36
void get_args(int argc, const char *argv[], const std::string &usage)
Definition: args.cc:49