some more attempts to fix compile bug on Android
authorVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Mon, 30 Sep 2013 15:28:11 +0000 (19:28 +0400)
committerVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Mon, 30 Sep 2013 15:28:11 +0000 (19:28 +0400)
modules/shape/src/sc_dis.cpp

index 7a0893d..24e86af 100644 (file)
@@ -235,7 +235,8 @@ float ShapeContextDistanceExtractorImpl::computeDistance(InputArray contour1, In
         set2SCE.extractSCD(set2, set2SCD, inliers2, set1SCE.getMeanDistance());
 
         // regularization parameter with annealing rate annRate //
-        beta=std::pow(set1SCE.getMeanDistance(),2);
+        beta=set1SCE.getMeanDistance();
+        beta *= beta;
 
         // match //
         matcher.matchDescriptors(set1SCD, set2SCD, matches, comparer, inliers1, inliers2);
@@ -284,13 +285,12 @@ float ShapeContextDistanceExtractorImpl::computeDistance(InputArray contour1, In
         gaussWindow = Mat::zeros(warpedImage.rows, warpedImage.cols, CV_32F);
         for (pt=0; pt<sset1.cols; pt++)
         {
+            Point2f p = sset1.at<Point2f>(0,pt);
             for (ii=0; ii<diffIm.rows; ii++)
             {
                 for (jj=0; jj<diffIm.cols; jj++)
                 {
-                    float xx = sset1.at<Point2f>(0,pt).x;
-                    float yy = sset1.at<Point2f>(0,pt).y;
-                    float val = float(std::exp( -float( (xx-jj)*(xx-jj) + (yy-ii)*(yy-ii) )/(2*sigma*sigma) ) / (sigma*sigma*2*CV_PI));
+                    float val = float(std::exp( -float( (p.x-jj)*(p.x-jj) + (p.y-ii)*(p.y-ii) )/(2*sigma*sigma) ) / (sigma*sigma*2*CV_PI));
                     gaussWindow.at<float>(ii,jj) += val;
                 }
             }