fixed slow down in getRectSubPix (original patch by Markus JR Mueller); removed some...
authorVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Tue, 8 Apr 2014 13:54:08 +0000 (17:54 +0400)
committerVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Tue, 8 Apr 2014 13:54:08 +0000 (17:54 +0400)
modules/core/src/arithm.cpp
modules/core/src/mathfuncs.cpp
modules/core/test/test_countnonzero.cpp
modules/imgproc/src/samplers.cpp
modules/nonfree/src/sift.cpp
modules/video/src/simpleflow.cpp

index ecc2ca0..40ff702 100644 (file)
@@ -448,11 +448,13 @@ template<typename T> struct OpNot
     T operator()( T a, T ) const { return ~a; }
 };
 
+#if (ARITHM_USE_IPP == 1)
 static inline void fixSteps(Size sz, size_t elemSize, size_t& step1, size_t& step2, size_t& step)
 {
     if( sz.height == 1 )
         step1 = step2 = step = sz.width*elemSize;
 }
+#endif
 
 static void add8u( const uchar* src1, size_t step1,
                    const uchar* src2, size_t step2,
index 12ba4fa..bbf5884 100644 (file)
@@ -46,7 +46,6 @@
 namespace cv
 {
 
-static const int MAX_BLOCK_SIZE = 1024;
 typedef void (*MathFunc)(const void* src, void* dst, int len);
 
 static const float atan2_p1 = 0.9997878412794807f*(float)(180/CV_PI);
index 176d324..0b82103 100644 (file)
@@ -52,9 +52,6 @@ using namespace std;
 
 #define sign(a) a > 0 ? 1 : a == 0 ? 0 : -1
 
-const int FLOAT_TYPE [2] = {CV_32F, CV_64F};
-const int INT_TYPE [5] = {CV_8U, CV_8S, CV_16U, CV_16S, CV_32S};
-
 #define MAX_WIDTH 100
 #define MAX_HEIGHT 100
 
index d6cc8a5..197a7ce 100644 (file)
@@ -172,7 +172,7 @@ void getRectSubPix_Cn_(const _Tp* src, size_t src_step, Size src_size,
                 dst[j+1] = cast_op(s1);
             }
 
-            for( j = 0; j < win_size.width; j++ )
+            for( ; j < win_size.width; j++ )
             {
                 _WTp s0 = src[j]*a11 + src[j+cn]*a12 + src[j+src_step]*a21 + src[j+src_step+cn]*a22;
                 dst[j] = cast_op(s0);
index 259e934..2112971 100644 (file)
@@ -111,21 +111,6 @@ namespace cv
 
 /******************************* Defs and macros *****************************/
 
-// default number of sampled intervals per octave
-static const int SIFT_INTVLS = 3;
-
-// default sigma for initial gaussian smoothing
-static const float SIFT_SIGMA = 1.6f;
-
-// default threshold on keypoint contrast |D(x)|
-static const float SIFT_CONTR_THR = 0.04f;
-
-// default threshold on keypoint ratio of principle curvatures
-static const float SIFT_CURV_THR = 10.f;
-
-// double image size before pyramid construction?
-static const bool SIFT_IMG_DBL = true;
-
 // default width of descriptor histogram array
 static const int SIFT_DESCR_WIDTH = 4;
 
index 66f4c41..20fc6b5 100644 (file)
@@ -66,21 +66,6 @@ inline static float dist(const Vec2f& p1, const Vec2f& p2) {
          (p1[1] - p2[1]) * (p1[1] - p2[1]);
 }
 
-inline static float dist(const Point2f& p1, const Point2f& p2) {
-  return (p1.x - p2.x) * (p1.x - p2.x) +
-         (p1.y - p2.y) * (p1.y - p2.y);
-}
-
-inline static float dist(float x1, float y1, float x2, float y2) {
-  return (x1 - x2) * (x1 - x2) +
-         (y1 - y2) * (y1 - y2);
-}
-
-inline static int dist(int x1, int y1, int x2, int y2) {
-  return (x1 - x2) * (x1 - x2) +
-         (y1 - y2) * (y1 - y2);
-}
-
 template<class T>
 inline static T min(T t1, T t2, T t3) {
   return (t1 <= t2 && t1 <= t3) ? t1 : min(t2, t3);