Merge pull request #13583 from qchateau:fix_13582

pull/13604/head
Alexander Alekhin 6 years ago
commit 5f419c014f
  1. 12
      modules/stitching/src/exposure_compensate.cpp

@ -201,6 +201,12 @@ void GainCompensator::singleFeed(const std::vector<Point> &corners, const std::v
double alpha = 0.01; double alpha = 0.01;
double beta = 100; double beta = 100;
int num_eq = num_images - countNonZero(skip); int num_eq = num_images - countNonZero(skip);
gains_.create(num_images, 1);
gains_.setTo(1);
// No image process, gains are all set to one, stop here
if (num_eq == 0)
return;
Mat_<double> A(num_eq, num_eq); A.setTo(0); Mat_<double> A(num_eq, num_eq); A.setTo(0);
Mat_<double> b(num_eq, 1); b.setTo(0); Mat_<double> b(num_eq, 1); b.setTo(0);
@ -248,12 +254,10 @@ void GainCompensator::singleFeed(const std::vector<Point> &corners, const std::v
#endif #endif
CV_CheckTypeEQ(l_gains.type(), CV_64FC1, ""); CV_CheckTypeEQ(l_gains.type(), CV_64FC1, "");
gains_.create(num_images, 1);
for (int i = 0, j = 0; i < num_images; ++i) for (int i = 0, j = 0; i < num_images; ++i)
{ {
if (skip(i, 0)) // Only assign non-skipped gains. Other gains are already set to 1
gains_.at<double>(i, 0) = 1; if (!skip(i, 0))
else
gains_.at<double>(i, 0) = l_gains(j++, 0); gains_.at<double>(i, 0) = l_gains(j++, 0);
} }
} }

Loading…
Cancel
Save