From: Vadim Pisarevsky Date: Wed, 13 May 2015 19:00:02 +0000 (+0300) Subject: some fixes from http://code.opencv.org/issues/3733 X-Git-Tag: accepted/tizen/6.0/unified/20201030.111113~2477^2~12 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=71002e0e79ac6b03da7ceb09f066c20d41be495a;p=platform%2Fupstream%2Fopencv.git some fixes from http://code.opencv.org/issues/3733 --- diff --git a/modules/imgproc/src/filter.cpp b/modules/imgproc/src/filter.cpp index fb43eee..f0b7ee7 100644 --- a/modules/imgproc/src/filter.cpp +++ b/modules/imgproc/src/filter.cpp @@ -3455,7 +3455,7 @@ struct SymmColumnSmallFilter : public SymmColumnFilter bool symmetrical = (this->symmetryType & KERNEL_SYMMETRICAL) != 0; bool is_1_2_1 = ky[0] == 2 && ky[1] == 1; bool is_1_m2_1 = ky[0] == -2 && ky[1] == 1; - bool is_m1_0_1 = ky[1] == 1 || ky[1] == -1; + bool is_m1_0_1 = ky[0] == 0 && (ky[1] == 1 || ky[1] == -1); ST f0 = ky[0], f1 = ky[1]; ST _delta = this->delta; CastOp castOp = this->castOp0; @@ -3486,13 +3486,12 @@ struct SymmColumnSmallFilter : public SymmColumnFilter D[i+2] = castOp(s0); D[i+3] = castOp(s1); } - #else + #endif for( ; i < width; i ++ ) { ST s0 = S0[i] + S1[i]*2 + S2[i] + _delta; D[i] = castOp(s0); } - #endif } else if( is_1_m2_1 ) { @@ -3509,17 +3508,16 @@ struct SymmColumnSmallFilter : public SymmColumnFilter D[i+2] = castOp(s0); D[i+3] = castOp(s1); } - #else + #endif for( ; i < width; i ++ ) { ST s0 = S0[i] - S1[i]*2 + S2[i] + _delta; D[i] = castOp(s0); } - #endif } else { - #if CV_ENABLE_UNROLLED + #if CV_ENABLE_UNROLLED for( ; i <= width - 4; i += 4 ) { ST s0 = (S0[i] + S2[i])*f1 + S1[i]*f0 + _delta; @@ -3532,16 +3530,13 @@ struct SymmColumnSmallFilter : public SymmColumnFilter D[i+2] = castOp(s0); D[i+3] = castOp(s1); } - #else + #endif for( ; i < width; i ++ ) { ST s0 = (S0[i] + S2[i])*f1 + S1[i]*f0 + _delta; D[i] = castOp(s0); } - #endif } - for( ; i < width; i++ ) - D[i] = castOp((S0[i] + S2[i])*f1 + S1[i]*f0 + _delta); } else { @@ -3549,7 +3544,7 @@ struct SymmColumnSmallFilter : public SymmColumnFilter { if( f1 < 0 ) std::swap(S0, S2); - #if CV_ENABLE_UNROLLED + #if CV_ENABLE_UNROLLED for( ; i <= width - 4; i += 4 ) { ST s0 = S2[i] - S0[i] + _delta; @@ -3562,19 +3557,18 @@ struct SymmColumnSmallFilter : public SymmColumnFilter D[i+2] = castOp(s0); D[i+3] = castOp(s1); } - #else + #endif for( ; i < width; i ++ ) { ST s0 = S2[i] - S0[i] + _delta; D[i] = castOp(s0); } - #endif if( f1 < 0 ) std::swap(S0, S2); } else { - #if CV_ENABLE_UNROLLED + #if CV_ENABLE_UNROLLED for( ; i <= width - 4; i += 4 ) { ST s0 = (S2[i] - S0[i])*f1 + _delta; @@ -3588,10 +3582,9 @@ struct SymmColumnSmallFilter : public SymmColumnFilter D[i+3] = castOp(s1); } #endif + for( ; i < width; i++ ) + D[i] = castOp((S2[i] - S0[i])*f1 + _delta); } - - for( ; i < width; i++ ) - D[i] = castOp((S2[i] - S0[i])*f1 + _delta); } } }