Corrections for compiling issues in Win, And and Doc
authorJuan Manuel Perez <juanmanpr@gmail.com>
Mon, 23 Sep 2013 19:24:27 +0000 (21:24 +0200)
committerVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Mon, 30 Sep 2013 10:39:17 +0000 (14:39 +0400)
14 files changed:
modules/shape/doc/histogram_cost_matrix.rst
modules/shape/doc/shape_distances.rst
modules/shape/include/opencv2/shape/emdL1.hpp
modules/shape/src/aff_trans.cpp
modules/shape/src/emdL1.cpp
modules/shape/src/emdL1_def.hpp
modules/shape/src/haus_dis.cpp
modules/shape/src/hist_cost.cpp
modules/shape/src/sc_dis.cpp
modules/shape/src/tps_trans.cpp
modules/shape/test/test_hausdorff.cpp
modules/shape/test/test_shape.cpp
samples/cpp/shape_example.cpp
samples/cpp/shape_transformation.cpp

index 9f6804d..8c338db 100644 (file)
@@ -70,7 +70,7 @@ An Chi based cost extraction. ::
     CV_EXPORTS_W Ptr<HistogramCostExtractor> createChiHistogramCostExtractor(int nDummies=25, float defaultCost=0.2);
 
 EMDL1HistogramCostExtractor
--------------------------
+---------------------------
 .. ocv:class:: EMDL1HistogramCostExtractor : public HistogramCostExtractor
 
 An EMD-L1 based cost extraction. ::
index c671e97..6a6ce95 100644 (file)
@@ -1,11 +1,11 @@
-Shape Distance and Common Interfaces 
+Shape Distance and Common Interfaces
 ====================================
 
 .. highlight:: cpp
 
 Shape Distance algorithms in OpenCV are derivated from a common interface that allows you to
 switch between them in a practical way for solving the same problem with different methods.
-Thus, all objects that implement shape distance measures inherit the 
+Thus, all objects that implement shape distance measures inherit the
 :ocv:class:`ShapeDistanceExtractor` interface.
 
 
@@ -123,7 +123,7 @@ ShapeContextDistanceExtractor::setShapeContextWeight
 ----------------------------------------------------
 Set the weight of the shape context distance in the final value of the shape distance.
 The shape context distance between two shapes is defined as the symmetric sum of shape
-context matching costs over best matching points. 
+context matching costs over best matching points.
 The final value of the shape distance is a user-defined linear combination of the shape
 context distance, an image appearance distance, and a bending energy.
 
index 400d26b..74c734a 100644 (file)
@@ -55,4 +55,4 @@ CV_EXPORTS float EMDL1(InputArray signature1, InputArray signature2);
 
 }//namespace cv
 
-#endif 
+#endif
index c416b82..e3d41d0 100644 (file)
@@ -88,7 +88,7 @@ public:
     virtual void read(const FileNode& fn)
     {
         CV_Assert( (String)fn["name"] == name_ );
-        fullAffine = (int)fn["affine_type"];
+        fullAffine = (bool)int(fn["affine_type"]);
     }
 
 private:
index cdd903e..423f8ef 100644 (file)
 //M*/
 
 /*
- * Implementation of an optimized EMD for histograms based in 
- * the papers "EMD-L1: An efficient and Robust Algorithm 
- * for comparing histogram-based descriptors", by Haibin Ling and 
+ * Implementation of an optimized EMD for histograms based in
+ * the papers "EMD-L1: An efficient and Robust Algorithm
+ * for comparing histogram-based descriptors", by Haibin Ling and
  * Kazunori Okuda; and "The Earth Mover's Distance is the Mallows
- * Distance: Some Insights from Statistics", by Elizaveta Levina and 
+ * Distance: Some Insights from Statistics", by Elizaveta Levina and
  * Peter Bickel, based on HAIBIN LING AND KAZUNORI OKADA implementation.
  */
  
@@ -393,9 +393,9 @@ bool EmdL1::greedySolution3()
 
                 //- determine which direction to move, either right or upward
                 dFlow = D[i1][i2][i3];
-                f1 = i1<(binsDim1-1)?fabs(dFlow+d1s[i1+1]):VHIGH;
-                f2 = i2<(binsDim2-1)?fabs(dFlow+d2s[i2+1]):VHIGH;
-                f3 = i3<(binsDim3-1)?fabs(dFlow+d3s[i3+1]):VHIGH;
+                f1 = i1<(binsDim1-1)?(float)fabs(dFlow+d1s[i1+1]):VHIGH;
+                f2 = i2<(binsDim2-1)?(float)fabs(dFlow+d2s[i2+1]):VHIGH;
+                f3 = i3<(binsDim3-1)?(float)fabs(dFlow+d3s[i3+1]):VHIGH;
 
                 if(f1<f2 && f1<f3)
                 {
@@ -791,4 +791,3 @@ float cv::EMDL1(InputArray _signature1, InputArray _signature2)
     EmdL1 emdl1;
     return emdl1.getEMDL1(signature1, signature2);
 }
-
index fae4733..2a75ab4 100644 (file)
@@ -139,4 +139,3 @@ private:
     int        m_iFrom;
     int m_iTo;
 };
-
index 5e16a69..a2c555e 100644 (file)
@@ -88,7 +88,7 @@ public:
     {
         CV_Assert( (String)fn["name"] == name_ );
         distanceFlag = (int)fn["distance"];
-        rankProportion = (int)fn["rank"];
+        rankProportion = (float)fn["rank"];
     }
 
 private:
@@ -111,7 +111,7 @@ static float _apply(const Mat &set1, const Mat &set2, int distType, double propR
         for (int c=0; c<disMat.cols; c++)
         {
             Point2f diff = set1.at<Point2f>(0,r)-set2.at<Point2f>(0,c);
-            disMat.at<float>(r,c) = norm(Mat(diff), distType);
+            disMat.at<float>(r,c) = (float)norm(Mat(diff), distType);
         }
     }
 
@@ -147,5 +147,3 @@ Ptr <HausdorffDistanceExtractor> createHausdorffDistanceExtractor(int distanceFl
 }
 
 } // cv
-
-
index 67e4063..4e18687 100644 (file)
@@ -156,7 +156,7 @@ void NormHistogramCostExtractorImpl::buildCostMatrix(InputArray _descriptors1, I
             if (i<scd1.rows && j<scd2.rows)
             {
                 Mat columnDiff = scd1.row(i)-scd2.row(j);
-                costMatrix.at<float>(i,j)=norm(columnDiff, flag);
+                costMatrix.at<float>(i,j)=(float)norm(columnDiff, flag);
             }
             else
             {
@@ -288,11 +288,11 @@ void EMDHistogramCostExtractorImpl::buildCostMatrix(InputArray _descriptors1, In
                 sig2.col(0)=scd2.row(j).t();
                 for (int k=0; k<sig1.rows; k++)
                 {
-                    sig1.at<float>(k,1)=k;
+                    sig1.at<float>(k,1)=float(k);
                 }
                 for (int k=0; k<sig2.rows; k++)
                 {
-                    sig2.at<float>(k,1)=k;
+                    sig2.at<float>(k,1)=float(k);
                 }
 
                 costMatrix.at<float>(i,j) = cv::EMD(sig1, sig2, flag);
@@ -543,5 +543,3 @@ Ptr <HistogramCostExtractor> createEMDL1HistogramCostExtractor(int nDummies, flo
 }
 
 } // cv
-
-
index 98edc56..e41efc2 100644 (file)
@@ -42,7 +42,7 @@
 
 /*
  * Implementation of the paper Shape Matching and Object Recognition Using Shape Contexts
- * Belongie et al., 2002 by Juan Manuel Perez for GSoC 2013. 
+ * Belongie et al., 2002 by Juan Manuel Perez for GSoC 2013.
  */
 #include "precomp.hpp"
 //#include "opencv2/highgui.hpp"
@@ -176,7 +176,7 @@ protected:
         {
           for (int j=0; j<contourMat.cols; j++)
           {
-              disMatrix.at<float>(i,j) = norm( cv::Mat(contourMat.at<cv::Point2f>(0,i)-contourMat.at<cv::Point2f>(0,j)), cv::NORM_L2 );
+              disMatrix.at<float>(i,j) = (float)norm( cv::Mat(contourMat.at<cv::Point2f>(0,i)-contourMat.at<cv::Point2f>(0,j)), cv::NORM_L2 );
               if (_meanDistance<0)
               {
                   if (queryInliers.size()>0)
@@ -193,7 +193,7 @@ protected:
 
         if (_meanDistance<0)
         {
-          meanDistance=mean(disMatrix, mask)[0];
+          meanDistance=(float)mean(disMatrix, mask)[0];
         }
         else
         {
@@ -239,7 +239,7 @@ protected:
                           float refAngle = atan2(refPt.y, refPt.x);
                           angleMatrix.at<float>(i,j) -= refAngle;
                       }
-                      angleMatrix.at<float>(i,j) = fmod(angleMatrix.at<float>(i,j)+FLT_EPSILON,2*CV_PI)+CV_PI;
+                      angleMatrix.at<float>(i,j) = float(fmod(double(angleMatrix.at<float>(i,j)+(double)FLT_EPSILON),2*CV_PI)+CV_PI);
                       //angleMatrix.at<float>(i,j) = 1+floor( angleMatrix.at<float>(i,j)*nAngularBins/(2*CV_PI) );
                   }
               }
@@ -426,7 +426,7 @@ protected:
             for (j = 0; j < costMatrix.rows; j++)
             {
                 d[j] = costMatrix.at<float>(freerow,j) - v[j];
-                pred[j] = freerow;
+                pred[j] = float(freerow);
                 collist[j] = j;        // init column list.
             }
 
@@ -479,7 +479,7 @@ protected:
                         v2 = costMatrix.at<float>(i,j) - v[j] - h;
                         if (v2 < d[j])
                         {
-                            pred[j] = i;
+                            pred[j] = float(i);
                             if (v2 == min)
                             {
                                 if (colsol[j] < 0)
@@ -511,7 +511,7 @@ protected:
             // reset row and column assignments along the alternating path.
             do
             {
-                i = pred[endofpath];
+                i = int(pred[endofpath]);
                 colsol[endofpath] = i;
                 j1 = endofpath;
                 endofpath = rowsol[i];
@@ -526,7 +526,7 @@ protected:
         {
             double minval;
             minMaxIdx(trueCostMatrix.row(nrow), &minval);
-            leftcost+=minval;
+            leftcost+=float(minval);
         }
         leftcost /= trueCostMatrix.rows;
 
@@ -535,7 +535,7 @@ protected:
         {
             double minval;
             minMaxIdx(trueCostMatrix.col(ncol), &minval);
-            rightcost+=minval;
+            rightcost+=float(minval);
         }
         rightcost /= trueCostMatrix.cols;
 
@@ -815,7 +815,7 @@ float ShapeContextDistanceExtractorImpl::computeDistance(InputArray contour1, In
                 {
                     float xx = sset1.at<Point2f>(0,pt).x;
                     float yy = sset1.at<Point2f>(0,pt).y;
-                    float val = std::exp( -( (xx-jj)*(xx-jj) + (yy-ii)*(yy-ii) )/(2*sigma*sigma) ) / (sigma*sigma*2*CV_PI);
+                    float val = float(std::exp( -float( (xx-jj)*(xx-jj) + (yy-ii)*(yy-ii) )/(2*sigma*sigma) ) / (sigma*sigma*2*CV_PI));
                     gaussWindow.at<float>(ii,jj) += val;
                 }
             }
@@ -831,7 +831,7 @@ float ShapeContextDistanceExtractorImpl::computeDistance(InputArray contour1, In
                 appIm.at<float>(ii,jj) = elema*elemb;
             }
         }
-        iAppearance = cv::sum(appIm)[0]/sset1.cols;
+        iAppearance = float(cv::sum(appIm)[0]/sset1.cols);
     }
     sDistance = matcher.getMatchingCost();
 
index dd839d6..b841567 100644 (file)
@@ -104,7 +104,7 @@ protected:
     String name_;
 };
 
-static double distance(Point2f p, Point2f q)
+static float distance(Point2f p, Point2f q)
 {
     Point2f diff = p - q;
     float norma = diff.x*diff.x + diff.y*diff.y;// - 2*diff.x*diff.y;
@@ -237,7 +237,7 @@ void ThinPlateSplineShapeTransformerImpl::estimateTransformation(InputArray _pts
         {
             if (i==j)
             {
-                matK.at<float>(i,j)=regularizationParameter;
+                matK.at<float>(i,j)=float(regularizationParameter);
             }
             else
             {
index dfff6bc..d1fdf38 100644 (file)
@@ -87,7 +87,7 @@ vector<Point2f> CV_HaussTest::normalizeContour(const vector<Point> &contour)
             else
             {
                 disMat.at<float>(ii,jj)=
-                    fabs(contour[ii].x*contour[jj].x)+fabs(contour[ii].y*contour[jj].y);
+                    float(fabs(double(contour[ii].x*contour[jj].x)))+float(fabs(double(contour[ii].y*contour[jj].y)));
             }
         }
         meanpt.x+=contour[ii].x;
@@ -95,7 +95,7 @@ vector<Point2f> CV_HaussTest::normalizeContour(const vector<Point> &contour)
     }
     meanpt.x/=contour.size();
     meanpt.y/=contour.size();
-    meanVal=cv::mean(disMat)[0];
+    meanVal=float(cv::mean(disMat)[0]);
     for (size_t ii=0; ii<contour.size(); ii++)
     {
         output[ii].x = (contour[ii].x-meanpt.x)/meanVal;
@@ -274,7 +274,7 @@ void CV_HaussTest::run(int /* */)
 {
     mpegTest();
     displayMPEGResults();
-       ts->set_failed_test_info(cvtest::TS::OK);       
+    ts->set_failed_test_info(cvtest::TS::OK);
 }
 
 TEST(Hauss, regression) { CV_HaussTest test; test.safe_run(); }
index 81d67f6..6415420 100644 (file)
@@ -81,7 +81,7 @@ CV_ShapeTest::~CV_ShapeTest()
 }
 
 vector <Point2f> CV_ShapeTest::convertContourType(const Mat& currentQuery, int n)
-{    
+{
     vector<vector<Point> > _contoursQuery;
     vector <Point2f> contoursQuery;
     findContours(currentQuery, _contoursQuery, RETR_LIST, CHAIN_APPROX_NONE);
index 921330e..d723a73 100644 (file)
@@ -75,7 +75,7 @@ int main(int argc, char** argv)
     imshow("QUERY", queryToShow);
     moveWindow("TEST", 0,0);
     vector<Point> contQuery = simpleContour(query);
-    int bestMatch;
+    int bestMatch = 0;
     float bestDis=FLT_MAX;
     for ( int ii=1; ii<=20; ii++ )
     {
index aa83cd7..abd7eab 100644 (file)
@@ -48,7 +48,7 @@ int main(int argc, char** argv)
     BFMatcher matcher(NORM_L2);
     vector<DMatch> matches;
     matcher.match(descriptors1, descriptors2, matches);
-    
+
     // drawing the results
     namedWindow("matches", 1);
     Mat img_matches;