From c7f6c0cb9f75ae00c8f01d91c76d3ef54d1d0228 Mon Sep 17 00:00:00 2001 From: edgarriba Date: Mon, 11 Aug 2014 10:17:42 +0200 Subject: [PATCH] Fixed warnings + RANSAC confidence to double --- .../calib3d/doc/camera_calibration_and_3d_reconstruction.rst | 2 +- modules/calib3d/include/opencv2/calib3d.hpp | 2 +- modules/calib3d/src/solvepnp.cpp | 2 +- .../calib3d/real_time_pose_estimation/src/CsvReader.cpp | 6 +++--- .../calib3d/real_time_pose_estimation/src/Mesh.cpp | 4 ++-- .../calib3d/real_time_pose_estimation/src/PnPProblem.cpp | 10 +++++----- .../calib3d/real_time_pose_estimation/src/PnPProblem.h | 2 +- .../calib3d/real_time_pose_estimation/src/Utils.cpp | 2 +- .../calib3d/real_time_pose_estimation/src/main_detection.cpp | 8 ++++---- .../real_time_pose_estimation/src/main_registration.cpp | 6 +++--- 10 files changed, 22 insertions(+), 22 deletions(-) diff --git a/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.rst b/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.rst index ab38504..53b2241 100644 --- a/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.rst +++ b/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.rst @@ -599,7 +599,7 @@ solvePnPRansac ------------------ Finds an object pose from 3D-2D point correspondences using the RANSAC scheme. -.. ocv:function:: bool solvePnPRansac( InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess=false, int iterationsCount = 100, float reprojectionError = 8.0, float confidence = 0.99, OutputArray inliers = noArray(), int flags = ITERATIVE ) +.. ocv:function:: bool solvePnPRansac( InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess=false, int iterationsCount = 100, float reprojectionError = 8.0, double confidence = 0.99, OutputArray inliers = noArray(), int flags = ITERATIVE ) .. ocv:pyfunction:: cv2.solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, iterationsCount[, reprojectionError[, minInliersCount[, inliers[, flags]]]]]]]]) -> rvec, tvec, inliers diff --git a/modules/calib3d/include/opencv2/calib3d.hpp b/modules/calib3d/include/opencv2/calib3d.hpp index 0d71bb2..f42afad 100644 --- a/modules/calib3d/include/opencv2/calib3d.hpp +++ b/modules/calib3d/include/opencv2/calib3d.hpp @@ -159,7 +159,7 @@ CV_EXPORTS_W bool solvePnPRansac( InputArray objectPoints, InputArray imagePoint InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess = false, int iterationsCount = 100, - float reprojectionError = 8.0, float confidence = 0.99, + float reprojectionError = 8.0, double confidence = 0.99, OutputArray inliers = noArray(), int flags = ITERATIVE ); //! initializes camera matrix from a few 3D points and the corresponding projections. diff --git a/modules/calib3d/src/solvepnp.cpp b/modules/calib3d/src/solvepnp.cpp index 006532d..be2b761 100644 --- a/modules/calib3d/src/solvepnp.cpp +++ b/modules/calib3d/src/solvepnp.cpp @@ -177,7 +177,7 @@ public: bool cv::solvePnPRansac(InputArray _opoints, InputArray _ipoints, InputArray _cameraMatrix, InputArray _distCoeffs, OutputArray _rvec, OutputArray _tvec, bool useExtrinsicGuess, - int iterationsCount, float reprojectionError, float confidence, + int iterationsCount, float reprojectionError, double confidence, OutputArray _inliers, int flags) { 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 f1c2374..c697517 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 @@ -45,9 +45,9 @@ void CsvReader::readPLY(vector &list_vertex, vector > &list getline(liness, z); cv::Point3f tmp_p; - tmp_p.x = StringToInt(x); - tmp_p.y = StringToInt(y); - tmp_p.z = StringToInt(z); + tmp_p.x = (float)StringToInt(x); + tmp_p.y = (float)StringToInt(y); + tmp_p.z = (float)StringToInt(z); list_vertex.push_back(tmp_p); count++; diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Mesh.cpp b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Mesh.cpp index 6458cfd..e6c84c4 100644 --- a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Mesh.cpp +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/Mesh.cpp @@ -76,7 +76,7 @@ void Mesh::load(const std::string path) csvReader.readPLY(list_vertex_, list_triangles_); // Update mesh attributes - num_vertexs_ = list_vertex_.size(); - num_triangles_ = list_triangles_.size(); + num_vertexs_ = (int)list_vertex_.size(); + num_triangles_ = (int)list_triangles_.size(); } 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 c469537..c61d0ea 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 @@ -133,9 +133,9 @@ bool PnPProblem::estimatePose( const std::vector &list_points3d, // Estimate the pose given a list of 2D/3D correspondences with RANSAC and the method to use void PnPProblem::estimatePoseRANSAC( const std::vector &list_points3d, // list with model 3D coordinates - const std::vector &list_points2d, // list with scene 2D coordinates - int flags, cv::Mat &inliers, int iterationsCount, // PnP method; inliers container - float reprojectionError, float confidence ) // Ransac parameters + const std::vector &list_points2d, // list with scene 2D coordinates + int flags, cv::Mat &inliers, int iterationsCount, // PnP method; inliers container + float reprojectionError, double confidence ) // Ransac parameters { cv::Mat distCoeffs = cv::Mat::zeros(4, 1, CV_64FC1); // vector of distortion coefficients cv::Mat rvec = cv::Mat::zeros(3, 1, CV_64FC1); // output rotation vector @@ -187,8 +187,8 @@ cv::Point2f PnPProblem::backproject3DPoint(const cv::Point3f &point3d) // Normalization of [u v]' cv::Point2f point2d; - point2d.x = point2d_vec.at(0) / point2d_vec.at(2); - point2d.y = point2d_vec.at(1) / point2d_vec.at(2); + point2d.x = (float)(point2d_vec.at(0) / point2d_vec.at(2)); + point2d.y = (float)(point2d_vec.at(1) / point2d_vec.at(2)); return point2d; } diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/PnPProblem.h b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/PnPProblem.h index 61277a7..7add0ac 100644 --- a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/PnPProblem.h +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/PnPProblem.h @@ -30,7 +30,7 @@ public: bool estimatePose(const std::vector &list_points3d, const std::vector &list_points2d, int flags); void estimatePoseRANSAC( const std::vector &list_points3d, const std::vector &list_points2d, int flags, cv::Mat &inliers, - int iterationsCount, float reprojectionError, float confidence ); + int iterationsCount, float reprojectionError, double confidence ); cv::Mat get_A_matrix() const { return _A_matrix; } cv::Mat get_R_matrix() const { return _R_matrix; } 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 74649fc..a7ace3b 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 @@ -19,7 +19,7 @@ // For text int fontFace = cv::FONT_ITALIC; double fontScale = 0.75; -double thickness_font = 2; +int thickness_font = 2; // For circles int lineType = 8; diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/main_detection.cpp b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/main_detection.cpp index 4667c69..1be6715 100644 --- a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/main_detection.cpp +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/main_detection.cpp @@ -49,7 +49,7 @@ bool fast_match = true; // fastRobustMatch() or robustMatch() // 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. +double confidence = 0.95; // ransac successful confidence. // Kalman Filter parameters int minInliersKalman = 30; // Kalman threshold updating @@ -287,7 +287,7 @@ int main(int argc, char *argv[]) drawObjectMesh(frame_vis, &mesh, &pnp_detection_est, yellow); // draw estimated pose } - double l = 5; + float l = 5; std::vector pose_points2d; pose_points2d.push_back(pnp_detection_est.backproject3DPoint(cv::Point3f(0,0,0))); // axis center pose_points2d.push_back(pnp_detection_est.backproject3DPoint(cv::Point3f(l,0,0))); // axis x @@ -315,10 +315,10 @@ int main(int argc, char *argv[]) // Draw some debug text int inliers_int = inliers_idx.rows; - int outliers_int = good_matches.size() - inliers_int; + int outliers_int = (int)good_matches.size() - inliers_int; std::string inliers_str = IntToString(inliers_int); std::string outliers_str = IntToString(outliers_int); - std::string n = IntToString(good_matches.size()); + std::string n = IntToString((int)good_matches.size()); std::string text = "Found " + inliers_str + " of " + n + " matches"; std::string text2 = "Inliers: " + inliers_str + " - Outliers: " + outliers_str; diff --git a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/main_registration.cpp b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/main_registration.cpp index c1d3e76..c796433 100644 --- a/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/main_registration.cpp +++ b/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/src/main_registration.cpp @@ -67,7 +67,7 @@ static void onMouseModelRegistration( int event, int x, int y, int, void* ) int n_regist = registration.getNumRegist(); int n_vertex = pts[n_regist]; - cv::Point2f point_2d = cv::Point2f(x,y); + cv::Point2f point_2d = cv::Point2f((float)x,(float)y); cv::Point3f point_3d = mesh.getVertex(n_vertex-1); bool is_registrable = registration.is_registrable(); @@ -224,12 +224,12 @@ int main() std::vector list_points_out = model.get_points2d_out(); // Draw some debug text - std::string num = IntToString(list_points_in.size()); + std::string num = IntToString((int)list_points_in.size()); std::string text = "There are " + num + " inliers"; drawText(img_vis, text, green); // Draw some debug text - num = IntToString(list_points_out.size()); + num = IntToString((int)list_points_out.size()); text = "There are " + num + " outliers"; drawText2(img_vis, text, red); -- 2.7.4