Fix memory corruption in batchDistance perf tests
authorAndrey Kamaev <andrey.kamaev@itseez.com>
Sat, 22 Dec 2012 17:01:57 +0000 (21:01 +0400)
committerAndrey Kamaev <andrey.kamaev@itseez.com>
Sat, 22 Dec 2012 17:01:57 +0000 (21:01 +0400)
modules/features2d/perf/perf_batchDistance.cpp

index 157b59f..75a2aa1 100644 (file)
@@ -150,7 +150,7 @@ void generateData( Mat& query, Mat& train, const int sourceType )
     // in ascending order. General boundaries of the perturbation
     // are (0.f, 1.f).
     train.create( query.rows*countFactor, query.cols, sourceType );
-    float step = 1.f / countFactor;
+    float step = (sourceType == CV_8U ? 256.f : 1.f) / countFactor;
     for( int qIdx = 0; qIdx < query.rows; qIdx++ )
     {
         Mat queryDescriptor = query.row(qIdx);
@@ -161,7 +161,7 @@ void generateData( Mat& query, Mat& train, const int sourceType )
             queryDescriptor.copyTo( trainDescriptor );
             int elem = rng(dim);
             float diff = rng.uniform( step*c, step*(c+1) );
-            trainDescriptor.at<float>(0, elem) += diff;
+            trainDescriptor.col(elem) += diff;
         }
     }
 }