From 10702c6d755909f8f90a106f728e34acd37cd188 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Mon, 1 Apr 2013 15:20:35 +0400 Subject: [PATCH] fixes in bundle adjustment code by Nils Hasler --- modules/contrib/include/opencv2/contrib/contrib.hpp | 2 +- modules/contrib/src/ba.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/contrib/include/opencv2/contrib/contrib.hpp b/modules/contrib/include/opencv2/contrib/contrib.hpp index 0085b0dfe..f18a5f93c 100644 --- a/modules/contrib/include/opencv2/contrib/contrib.hpp +++ b/modules/contrib/include/opencv2/contrib/contrib.hpp @@ -435,7 +435,7 @@ namespace cv typedef bool (*BundleAdjustCallback)(int iteration, double norm_error, void* user_data); - class LevMarqSparse { + class CV_EXPORTS LevMarqSparse { public: LevMarqSparse(); LevMarqSparse(int npoints, // number of points diff --git a/modules/contrib/src/ba.cpp b/modules/contrib/src/ba.cpp index a0f904665..80047877b 100644 --- a/modules/contrib/src/ba.cpp +++ b/modules/contrib/src/ba.cpp @@ -1105,7 +1105,7 @@ void LevMarqSparse::bundleAdjust( vector& points, //positions of points Mat rot_vec = Mat(levmar.P).rowRange(i*num_cam_param, i*num_cam_param+3); Rodrigues( rot_vec, R[i] ); //translation - T[i] = Mat(levmar.P).rowRange(i*num_cam_param + 3, i*num_cam_param+6); + Mat(levmar.P).rowRange(i*num_cam_param + 3, i*num_cam_param+6).copyTo(T[i]); //intrinsic camera matrix double* intr_data = (double*)cameraMatrix[i].data;