From 7b0be9cf8f7151320aa8a7f069b0a7bcd07d967e Mon Sep 17 00:00:00 2001 From: edgarriba Date: Tue, 5 Aug 2014 17:27:20 +0200 Subject: [PATCH] Update code --- .../calib3d/real_time_pose/real_time_pose.rst | 2 +- modules/calib3d/src/dls.cpp | 10 +- .../real_time_pose_estimation/CMakeLists.txt | 8 +- .../real_time_pose_estimation/src/CsvReader.cpp | 104 ++++++++++----------- .../real_time_pose_estimation/src/Model.cpp | 2 - .../src/ModelRegistration.cpp | 3 - .../real_time_pose_estimation/src/PnPProblem.cpp | 3 - .../real_time_pose_estimation/src/Utils.cpp | 1 - .../real_time_pose_estimation/src/test_pnp.cpp | 1 - 9 files changed, 57 insertions(+), 77 deletions(-) diff --git a/doc/tutorials/calib3d/real_time_pose/real_time_pose.rst b/doc/tutorials/calib3d/real_time_pose/real_time_pose.rst index 24aa48e..5b061b3 100644 --- a/doc/tutorials/calib3d/real_time_pose/real_time_pose.rst +++ b/doc/tutorials/calib3d/real_time_pose/real_time_pose.rst @@ -341,7 +341,7 @@ The following parameters work for this application: .. code-block:: cpp // RANSAC parameters - + int iterationsCount = 500; // number of Ransac iterations. float reprojectionError = 2.0; // maximum allowed distance to consider it an inlier. float confidence = 0.95; // ransac successful confidence. diff --git a/modules/calib3d/src/dls.cpp b/modules/calib3d/src/dls.cpp index 1bc00a8..ced3016 100644 --- a/modules/calib3d/src/dls.cpp +++ b/modules/calib3d/src/dls.cpp @@ -417,7 +417,7 @@ cv::Mat dls::cayley_LS_M(const std::vector& a, const std::vector { // TODO: input matrix pointer // TODO: shift coefficients one position to left - + cv::Mat M = cv::Mat::zeros(120, 120, CV_64F); M.at(0,0)=u[1]; M.at(0,35)=a[1]; M.at(0,83)=b[1]; M.at(0,118)=c[1]; @@ -662,11 +662,3 @@ bool dls::positive_eigenvalues(const cv::Mat * eigenvalues) cv::MatConstIterator_ it = eigenvalues->begin(); return *(it) > 0 && *(it+1) > 0 && *(it+2) > 0; } - - - - - - - - diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/CMakeLists.txt b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/CMakeLists.txt index 629c437..f5a20d8 100644 --- a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/CMakeLists.txt +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/CMakeLists.txt @@ -8,8 +8,8 @@ ADD_DEFINITIONS( find_package( OpenCV REQUIRED ) -include_directories( - ${OpenCV_INCLUDE_DIRS} +include_directories( + ${OpenCV_INCLUDE_DIRS} ) add_executable( @@ -39,9 +39,9 @@ pnp_verification ) add_executable( -pnp_detection +pnp_detection src/main_detection.cpp - src/CsvReader.cpp + src/CsvReader.cpp src/CsvWriter.cpp src/ModelRegistration.cpp src/Mesh.cpp diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/CsvReader.cpp b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/CsvReader.cpp index 6f38c5c..4277e56 100644 --- a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/CsvReader.cpp +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/CsvReader.cpp @@ -1,81 +1,79 @@ -#include #include "CsvReader.h" /** The default constructor of the CSV reader Class */ CsvReader::CsvReader(const std::string &path, const char &separator){ - _file.open(path.c_str(), ifstream::in); - _separator = separator; + _file.open(path.c_str(), ifstream::in); + _separator = separator; } /* Read a plane text file with .ply format */ void CsvReader::readPLY(std::vector &list_vertex, std::vector > &list_triangles) { -std::string line, tmp_str, n; - int num_vertex, num_triangles; - int count = 0; - bool end_header = false; - bool end_vertex = false; + std::string line, tmp_str, n; + int num_vertex, num_triangles; + int count = 0; + bool end_header = false; + bool end_vertex = false; - // Read the whole *.ply file - while (getline(_file, line)) { + // Read the whole *.ply file + while (getline(_file, line)) { stringstream liness(line); // read header if(!end_header) { - getline(liness, tmp_str, _separator); - if( tmp_str == "element" ) - { - getline(liness, tmp_str, _separator); - getline(liness, n); - if(tmp_str == "vertex") num_vertex = std::stoi(n); - if(tmp_str == "face") num_triangles = std::stoi(n); - } - if(tmp_str == "end_header") end_header = true; + getline(liness, tmp_str, _separator); + if( tmp_str == "element" ) + { + getline(liness, tmp_str, _separator); + getline(liness, n); + if(tmp_str == "vertex") num_vertex = StringToNumber(n); + if(tmp_str == "face") num_triangles = StringToNumber(n); + } + if(tmp_str == "end_header") end_header = true; } // read file content else if(end_header) { - // read vertex and add into 'list_vertex' - if(!end_vertex && count < num_vertex) - { - string x, y, z; - getline(liness, x, _separator); - getline(liness, y, _separator); - getline(liness, z); + // read vertex and add into 'list_vertex' + if(!end_vertex && count < num_vertex) + { + string x, y, z; + getline(liness, x, _separator); + getline(liness, y, _separator); + getline(liness, z); - cv::Point3f tmp_p; - tmp_p.x = std::stof(x); - tmp_p.y = std::stof(y); - tmp_p.z = std::stof(z); - list_vertex.push_back(tmp_p); + cv::Point3f tmp_p; + tmp_p.x = StringToNumber(x); + tmp_p.y = StringToNumber(y); + tmp_p.z = StringToNumber(z); + list_vertex.push_back(tmp_p); - count++; - if(count == num_vertex) - { - count = 0; - end_vertex = !end_vertex; - } - } - // read faces and add into 'list_triangles' - else if(end_vertex && count < num_triangles) - { - std::string num_pts_per_face, id0, id1, id2; - getline(liness, num_pts_per_face, _separator); - getline(liness, id0, _separator); - getline(liness, id1, _separator); - getline(liness, id2); + count++; + if(count == num_vertex) + { + count = 0; + end_vertex = !end_vertex; + } + } + // read faces and add into 'list_triangles' + else if(end_vertex && count < num_triangles) + { + std::string num_pts_per_face, id0, id1, id2; + getline(liness, num_pts_per_face, _separator); + getline(liness, id0, _separator); + getline(liness, id1, _separator); + getline(liness, id2); - std::vector tmp_triangle(3); - tmp_triangle[0] = std::stoi(id0); - tmp_triangle[1] = std::stoi(id1); - tmp_triangle[2] = std::stoi(id2); - list_triangles.push_back(tmp_triangle); + std::vector tmp_triangle(3); + tmp_triangle[0] = StringToNumber(id0); + tmp_triangle[1] = StringToNumber(id1); + tmp_triangle[2] = StringToNumber(id2); + list_triangles.push_back(tmp_triangle); - count++; + count++; } } } } - diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Model.cpp b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Model.cpp index 258e8dd..3256cef 100644 --- a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Model.cpp +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Model.cpp @@ -71,5 +71,3 @@ void Model::load(const std::string path) storage.release(); } - - diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/ModelRegistration.cpp b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/ModelRegistration.cpp index 5f39a0f..e8da885 100644 --- a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/ModelRegistration.cpp +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/ModelRegistration.cpp @@ -33,6 +33,3 @@ void ModelRegistration::reset() list_points2d_.clear(); list_points3d_.clear(); } - - - diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/PnPProblem.cpp b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/PnPProblem.cpp index be4254e..48c8be5 100644 --- a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/PnPProblem.cpp +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/PnPProblem.cpp @@ -310,6 +310,3 @@ bool PnPProblem::intersect_MollerTrumbore(Ray &Ray, Triangle &Triangle, double * // No hit, no win return false; } - - - diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Utils.cpp b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Utils.cpp index b28727a..ec8a69c 100644 --- a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Utils.cpp +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Utils.cpp @@ -273,4 +273,3 @@ cv::Mat euler2rot(const cv::Mat & euler) return rotationMatrix; } - diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/test_pnp.cpp b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/test_pnp.cpp index 5717a91..4843d32 100644 --- a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/test_pnp.cpp +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/test_pnp.cpp @@ -141,4 +141,3 @@ int main(int argc, char *argv[]) data2file("computation_time.txt", comp_time); } - -- 2.7.4