fix conversion bug in estimateAffine2D* functions
authorJiri Horner <laeqten@gmail.com>
Fri, 27 Jan 2017 15:55:29 +0000 (16:55 +0100)
committerJiri Horner <laeqten@gmail.com>
Fri, 27 Jan 2017 15:55:29 +0000 (16:55 +0100)
functions support points to have other datatypes than floats.

* fix bug in coversion that overwrites src points with dst points

modules/calib3d/src/ptsetreg.cpp

index cbf8175..ba9b786 100644 (file)
@@ -802,11 +802,11 @@ Mat estimateAffine2D(InputArray _from, InputArray _to, OutputArray _inliers,
 
     if (from.type() != CV_32FC2 || to.type() != CV_32FC2)
     {
-        Mat tmp;
-        from.convertTo(tmp, CV_32FC2);
-        from = tmp;
-        to.convertTo(tmp, CV_32FC2);
-        to = tmp;
+        Mat tmp1, tmp2;
+        from.convertTo(tmp1, CV_32FC2);
+        from = tmp1;
+        to.convertTo(tmp2, CV_32FC2);
+        to = tmp2;
     }
     // convert to N x 1 vectors
     from = from.reshape(2, count);
@@ -869,11 +869,11 @@ Mat estimateAffinePartial2D(InputArray _from, InputArray _to, OutputArray _inlie
 
     if (from.type() != CV_32FC2 || to.type() != CV_32FC2)
     {
-        Mat tmp;
-        from.convertTo(tmp, CV_32FC2);
-        from = tmp;
-        to.convertTo(tmp, CV_32FC2);
-        to = tmp;
+        Mat tmp1, tmp2;
+        from.convertTo(tmp1, CV_32FC2);
+        from = tmp1;
+        to.convertTo(tmp2, CV_32FC2);
+        to = tmp2;
     }
     // convert to N x 1 vectors
     from = from.reshape(2, count);