Code tutorial
authoredgarriba <edgar.riba@gmail.com>
Wed, 30 Jul 2014 10:54:49 +0000 (12:54 +0200)
committeredgarriba <edgar.riba@gmail.com>
Wed, 30 Jul 2014 10:54:49 +0000 (12:54 +0200)
samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/include/CsvReader.h [new file with mode: 0644]
samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/include/ModelRegistration.h [new file with mode: 0644]

diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/include/CsvReader.h b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/include/CsvReader.h
new file mode 100644 (file)
index 0000000..1df3835
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef CSVREADER_H
+#define        CSVREADER_H
+
+#include <iostream>
+#include <fstream>
+
+#include <opencv2/core/core.hpp>
+#include "Mesh.h"
+
+using namespace std;
+using namespace cv;
+
+class CsvReader {
+public:
+  /**
+  * The default constructor of the CSV reader Class.
+  * The default separator is ' ' (empty space)
+  *
+  * @param path - The path of the file to read
+  * @param separator - The separator character between words per line
+  * @return
+  */
+  CsvReader(const std::string &path, const char &separator = ' ');
+
+  /**
+  * Read a plane text file with .ply format
+  *
+  * @param list_vertex - The container of the vertices list of the mesh
+  * @param list_triangle - The container of the triangles list of the mesh
+  * @return
+  */
+  void readPLY(std::vector<cv::Point3f> &list_vertex, std::vector<std::vector<int> > &list_triangles);
+
+private:
+  /** The current stream file for the reader */
+  ifstream _file;
+  /** The separator character between words for each line */
+  char _separator;
+};
+
+#endif
diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/include/ModelRegistration.h b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/include/ModelRegistration.h
new file mode 100644 (file)
index 0000000..f1e7aca
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * ModelRegistration.h
+ *
+ *  Created on: Apr 18, 2014
+ *      Author: edgar
+ */
+
+#ifndef MODELREGISTRATION_H_
+#define MODELREGISTRATION_H_
+
+#include <iostream>
+#include <opencv2/core/core.hpp>
+
+class ModelRegistration
+{
+public:
+
+  ModelRegistration();
+  virtual ~ModelRegistration();
+
+  void setNumMax(int n) { max_registrations_ = n; }
+
+  std::vector<cv::Point2f> get_points2d() const { return list_points2d_; }
+  std::vector<cv::Point3f> get_points3d() const { return list_points3d_; }
+  int getNumMax() const { return max_registrations_; }
+  int getNumRegist() const { return n_registrations_; }
+
+  bool is_registrable() const { return (n_registrations_ < max_registrations_); }
+  void registerPoint(const cv::Point2f &point2d, const cv::Point3f &point3d);
+  void reset();
+
+private:
+/** The current number of registered points */
+int n_registrations_;
+/** The total number of points to register */
+int max_registrations_;
+/** The list of 2D points to register the model */
+std::vector<cv::Point2f> list_points2d_;
+/** The list of 3D points to register the model */
+std::vector<cv::Point3f> list_points3d_;
+};
+
+#endif /* MODELREGISTRATION_H_ */