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,
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);
#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
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);
/******************************* 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;
(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);