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)
committerDikay900 <dark900@xyz.de>
Sat, 25 Apr 2015 12:54:35 +0000 (14:54 +0200)
- Fix both stitching_detailed.cpp sample and cv::Stitcher.

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

index 83ea609..be2c2b7 100644 (file)
@@ -478,7 +478,7 @@ void Stitcher::estimateCameraParams()
     {
         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 4162add..60b73b3 100644 (file)
@@ -516,7 +516,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];