Added call to clone() to avoid unexpected change to external data.
authorAdi Shavit <adishavit@gmail.com>
Thu, 3 Jul 2014 19:14:58 +0000 (22:14 +0300)
committerAdi Shavit <adishavit@gmail.com>
Thu, 3 Jul 2014 19:14:58 +0000 (22:14 +0300)
- Fix both stitching_detailed.cpp sample and cv::Stitcher.

modules/stitching/src/stitcher.cpp
samples/cpp/stitching_detailed.cpp

index ddfdb50..0d4623a 100644 (file)
@@ -522,7 +522,7 @@ Stitcher::Status Stitcher::estimateCameraParams()
     {
         std::vector<Mat> rmats;
         for (size_t i = 0; i < cameras_.size(); ++i)
-            rmats.push_back(cameras_[i].R);
+            rmats.push_back(cameras_[i].R.clone());
         detail::waveCorrect(rmats, wave_correct_kind_);
         for (size_t i = 0; i < cameras_.size(); ++i)
             cameras_[i].R = rmats[i];
index df0a9ab..740047f 100644 (file)
@@ -527,7 +527,7 @@ int main(int argc, char* argv[])
     {
         vector<Mat> rmats;
         for (size_t i = 0; i < cameras.size(); ++i)
-            rmats.push_back(cameras[i].R);
+            rmats.push_back(cameras[i].R.clone());
         waveCorrect(rmats, wave_correct);
         for (size_t i = 0; i < cameras.size(); ++i)
             cameras[i].R = rmats[i];