fix build with GCC 3.3 on Ubuntu 8.04
authorVadim Pisarevsky <no@email>
Fri, 9 Jul 2010 09:09:20 +0000 (09:09 +0000)
committerVadim Pisarevsky <no@email>
Fri, 9 Jul 2010 09:09:20 +0000 (09:09 +0000)
modules/features2d/include/opencv2/features2d/features2d.hpp
modules/imgproc/src/moments.cpp
samples/cpp/calibration.cpp
tests/cv/src/areprojectImageTo3D.cpp
tests/cxcore/src/areduce.cpp

index 9e66bd7..0675bcb 100644 (file)
@@ -1560,6 +1560,7 @@ struct DMatch
 class CV_EXPORTS DescriptorMatcher
 {
 public:
+    virtual ~DescriptorMatcher() {}
     /*
      * Add descriptors to the training set
      * descriptors Descriptors to add to the training set
@@ -1806,7 +1807,7 @@ void BruteForceMatcher<Distance>::matchImpl( const Mat& descriptors_1, const Mat
 
     for( int i = 0; i < descriptors_1.rows; i++ )
     {
-        const ValueType* d1 = descriptors_1.ptr<ValueType>(i);
+        const ValueType* d1 = (const ValueType*)(descriptors_1.data + descriptors_1.step*i);
         int matchIndex = -1;
         DistanceType matchDistance = std::numeric_limits<DistanceType>::max();
 
@@ -1814,7 +1815,7 @@ void BruteForceMatcher<Distance>::matchImpl( const Mat& descriptors_1, const Mat
         {
             if( possibleMatch(mask, i, j) )
             {
-                const ValueType* d2 = descriptors_2.ptr<ValueType>(j);
+                const ValueType* d2 = (const ValueType*)(descriptors_2.data + descriptors_2.step*j);
                 DistanceType curDistance = distance(d1, d2, dimension);
                 if( curDistance < matchDistance )
                 {
@@ -1854,13 +1855,13 @@ void BruteForceMatcher<Distance>::matchImpl( const Mat& descriptors_1, const Mat
 
     for( int i = 0; i < descriptors_1.rows; i++ )
     {
-        const ValueType* d1 = descriptors_1.ptr<ValueType>(i);
+        const ValueType* d1 = (const ValueType*)(descriptors_1.data + descriptors_1.step*i);
 
         for( int j = 0; j < descriptors_2.rows; j++ )
         {
             if( possibleMatch(mask, i, j) )
             {
-                const ValueType* d2 = descriptors_2.ptr<ValueType>(j);
+                const ValueType* d2 = (const ValueType*)(descriptors_2.data + descriptors_2.step*j);
                 DistanceType curDistance = distance(d1, d2, dimension);
                 if( curDistance < threshold )
                 {
index 36aa957..fd0125c 100644 (file)
@@ -205,7 +205,7 @@ static void momentsInTile( const cv::Mat& img, double* moments )
 
     for( y = 0; y < size.height; y++ )
     {
-               const T* ptr = img.ptr<T>(y);
+               const T* ptr = (const T*)(img.data + y*img.step);
                WT x0 = 0, x1 = 0, x2 = 0;
                MT x3 = 0;
                
index e21b2ac..47ab1e4 100644 (file)
@@ -171,7 +171,8 @@ void saveCameraParams( const string& filename,
         for( size_t i = 0; i < imagePoints.size(); i++ )
         {
             Mat r = imagePtMat.row(i).reshape(2, imagePtMat.cols);
-            Mat(imagePoints[i]).copyTo(r);
+            Mat imgpti(imagePoints[i]);
+            imgpti.copyTo(r);
         }
         fs << "image_points" << imagePtMat;
     }
index 41be124..34ef319 100644 (file)
@@ -145,7 +145,7 @@ protected:
                 Mat_<double> res = Q * Mat_<double>(4, 1, from);\r
                 res /= res(3, 0);\r
 \r
-                out3d_t pixel_exp = *res.ptr<Vec3d>();\r
+                out3d_t pixel_exp = *(Vec3d*)res.data;\r
                 out3d_t pixel_out = _3dImg(y, x);\r
 \r
                 const int largeZValue = 10000; /* see documentation */ \r
index 9795689..c29ec50 100644 (file)
@@ -75,6 +75,11 @@ void testReduce( const Mat& src, Mat& sum, Mat& avg, Mat& max, Mat& min, int dim
     sum.setTo(Scalar(0));\r
     max.setTo(Scalar(-DBL_MAX));\r
     min.setTo(Scalar(DBL_MAX));\r
+    \r
+    const Mat_<Type>& src_ = src;\r
+    Mat_<double>& sum_ = (Mat_<double>&)sum;\r
+    Mat_<double>& min_ = (Mat_<double>&)min;\r
+    Mat_<double>& max_ = (Mat_<double>&)max;\r
 \r
     if( dim == 0 )\r
     {\r
@@ -82,9 +87,9 @@ void testReduce( const Mat& src, Mat& sum, Mat& avg, Mat& max, Mat& min, int dim
         {\r
             for( int ci = 0; ci < src.cols; ci++ )\r
             {\r
-                sum.at<double>(0, ci) += src.at<Type>(ri, ci);\r
-                max.at<double>(0, ci) = std::max( max.at<double>(0, ci), (double)src.at<Type>(ri, ci) );\r
-                min.at<double>(0, ci) = std::min( min.at<double>(0, ci), (double)src.at<Type>(ri, ci) );\r
+                sum_(0, ci) += src_(ri, ci);\r
+                max_(0, ci) = std::max( max_(0, ci), (double)src_(ri, ci) );\r
+                min_(0, ci) = std::min( min_(0, ci), (double)src_(ri, ci) );\r
             }\r
         }\r
     }\r
@@ -94,9 +99,9 @@ void testReduce( const Mat& src, Mat& sum, Mat& avg, Mat& max, Mat& min, int dim
         {\r
             for( int ri = 0; ri < src.rows; ri++ )\r
             {\r
-                sum.at<double>(ri, 0) += src.at<Type>(ri, ci);\r
-                max.at<double>(ri, 0) = std::max( max.at<double>(ri, 0), (double)src.at<Type>(ri, ci) );\r
-                min.at<double>(ri, 0) = std::min( min.at<double>(ri, 0), (double)src.at<Type>(ri, ci) );\r
+                sum_(ri, 0) += src_(ri, ci);\r
+                max_(ri, 0) = std::max( max_(ri, 0), (double)src_(ri, ci) );\r
+                min_(ri, 0) = std::min( min_(ri, 0), (double)src_(ri, ci) );\r
             }\r
         }\r
     }\r
@@ -119,37 +124,37 @@ int CV_ReduceTest::checkOp( const Mat& src, int dstType, int opType, const Mat&
 {\r
     int srcType = src.type();\r
     bool support = false;\r
-    if( opType == CV_REDUCE_SUM || opType == CV_REDUCE_AVG )
-    {
-        if( srcType == CV_8U && (dstType == CV_32S || dstType == CV_32F || dstType == CV_64F) )
-            support = true;
-        if( srcType == CV_16U && (dstType == CV_32F || dstType == CV_64F) )
-            support = true;
-        if( srcType == CV_16S && (dstType == CV_32F || dstType == CV_64F) )
-            support = true;
-        if( srcType == CV_32F && (dstType == CV_32F || dstType == CV_64F) )
-            support = true;
-        if( srcType == CV_64F && dstType == CV_64F)
-            support = true;
-    }
-    else if( opType == CV_REDUCE_MAX )
-    {
-        if( srcType == CV_8U && dstType == CV_8U )
-            support = true;
-        if( srcType == CV_32F && dstType == CV_32F )
-            support = true;
-        if( srcType == CV_64F && dstType == CV_64F )
-            support = true;
-    }
-    else if( opType == CV_REDUCE_MIN )
-    {
-        if( srcType == CV_8U && dstType == CV_8U)
-            support = true;
-        if( srcType == CV_32F && dstType == CV_32F)
-            support = true;
-        if( srcType == CV_64F && dstType == CV_64F)
-            support = true;
-    }
+    if( opType == CV_REDUCE_SUM || opType == CV_REDUCE_AVG )\r
+    {\r
+        if( srcType == CV_8U && (dstType == CV_32S || dstType == CV_32F || dstType == CV_64F) )\r
+            support = true;\r
+        if( srcType == CV_16U && (dstType == CV_32F || dstType == CV_64F) )\r
+            support = true;\r
+        if( srcType == CV_16S && (dstType == CV_32F || dstType == CV_64F) )\r
+            support = true;\r
+        if( srcType == CV_32F && (dstType == CV_32F || dstType == CV_64F) )\r
+            support = true;\r
+        if( srcType == CV_64F && dstType == CV_64F)\r
+            support = true;\r
+    }\r
+    else if( opType == CV_REDUCE_MAX )\r
+    {\r
+        if( srcType == CV_8U && dstType == CV_8U )\r
+            support = true;\r
+        if( srcType == CV_32F && dstType == CV_32F )\r
+            support = true;\r
+        if( srcType == CV_64F && dstType == CV_64F )\r
+            support = true;\r
+    }\r
+    else if( opType == CV_REDUCE_MIN )\r
+    {\r
+        if( srcType == CV_8U && dstType == CV_8U)\r
+            support = true;\r
+        if( srcType == CV_32F && dstType == CV_32F)\r
+            support = true;\r
+        if( srcType == CV_64F && dstType == CV_64F)\r
+            support = true;\r
+    }\r
     if( !support )\r
         return CvTS::OK;\r
 \r
@@ -158,7 +163,7 @@ int CV_ReduceTest::checkOp( const Mat& src, int dstType, int opType, const Mat&
     reduce( src, _dst, dim, opType, dstType );\r
     _dst.convertTo( dst, CV_64FC1 );\r
     if( norm( opRes, dst, NORM_INF ) > eps )\r
-    {
+    {\r
         char msg[100];\r
         const char* opTypeStr = opType == CV_REDUCE_SUM ? "CV_REDUCE_SUM" :\r
             opType == CV_REDUCE_AVG ? "CV_REDUCE_AVG" :\r
@@ -168,11 +173,11 @@ int CV_ReduceTest::checkOp( const Mat& src, int dstType, int opType, const Mat&
         getMatTypeStr( src.type(), srcTypeStr );\r
         getMatTypeStr( dstType, dstTypeStr );\r
         const char* dimStr = dim == 0 ? "ROWS" : "COLS";\r
-
-        sprintf( msg, "bad accuracy with srcType = %s, dstType = %s, opType = %s, dim = %s",
-            srcTypeStr.c_str(), dstTypeStr.c_str(), opTypeStr, dimStr );
-        ts->printf( CvTS::LOG, msg );
-        return CvTS::FAIL_BAD_ACCURACY;
+\r
+        sprintf( msg, "bad accuracy with srcType = %s, dstType = %s, opType = %s, dim = %s",\r
+            srcTypeStr.c_str(), dstTypeStr.c_str(), opTypeStr, dimStr );\r
+        ts->printf( CvTS::LOG, msg );\r
+        return CvTS::FAIL_BAD_ACCURACY;\r
     }\r
     return CvTS::OK;\r
 }\r