From 69f1ee87323fee090178e27a6330e40094e97794 Mon Sep 17 00:00:00 2001 From: edgarriba Date: Wed, 30 Jul 2014 13:08:19 +0200 Subject: [PATCH] Code tutorial --- .../src/CsvWriter.cpp | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/CsvWriter.cpp diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/CsvWriter.cpp b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/CsvWriter.cpp new file mode 100644 index 000000000..c8dc9449d --- /dev/null +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/CsvWriter.cpp @@ -0,0 +1,50 @@ +#include +#include "CsvWriter.h" + +CsvWriter::CsvWriter(const std::string &path, const std::string &separator){ + _file.open(path.c_str(), std::ofstream::out); + _isFirstTerm = true; + _separator = separator; +} + +CsvWriter::~CsvWriter() { + _file.flush(); + _file.close(); +} + +void CsvWriter::writeXYZ(const std::vector &list_points3d) +{ + std::string x, y, z; + for(unsigned int i = 0; i < list_points3d.size(); ++i) + { + x = boost::lexical_cast< std::string >(list_points3d[i].x); + y = boost::lexical_cast< std::string >(list_points3d[i].y); + z = boost::lexical_cast< std::string >(list_points3d[i].z); + + _file << x << _separator << y << _separator << z << std::endl; + } + +} + +void CsvWriter::writeUVXYZ(const std::vector &list_points3d, const std::vector &list_points2d, const cv::Mat &descriptors) +{ + std::string u, v, x, y, z, descriptor_str; + for(int i = 0; i < list_points3d.size(); ++i) + { + u = boost::lexical_cast< std::string >(list_points2d[i].x); + v = boost::lexical_cast< std::string >(list_points2d[i].y); + x = boost::lexical_cast< std::string >(list_points3d[i].x); + y = boost::lexical_cast< std::string >(list_points3d[i].y); + z = boost::lexical_cast< std::string >(list_points3d[i].z); + + _file << u << _separator << v << _separator << x << _separator << y << _separator << z; + + for(int j = 0; j < 32; ++j) + { + std::cout << descriptors.at(i,j) << std::endl; + descriptor_str = boost::lexical_cast< std::string >(descriptors.at(i,j)); + _file << _separator << descriptor_str; + } + _file << std::endl; + } +}