Commit 214dab39 authored by Alexander Karsakov's avatar Alexander Karsakov

Fixed BORDER_REFLECT and BORDER_REFLECT_101 extrapolation for case x > 2*maxV

parent a125cd6c
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
//aaaaaa|abcdefgh|hhhhhhh //aaaaaa|abcdefgh|hhhhhhh
#define EXTRAPOLATE(x, maxV) \ #define EXTRAPOLATE(x, maxV) \
{ \ { \
(x) = max(min((x), (maxV) - 1), 0); \ (x) = clamp((x), 0, (maxV)-1); \
} }
#elif defined BORDER_WRAP #elif defined BORDER_WRAP
//cdefgh|abcdefgh|abcdefg //cdefgh|abcdefgh|abcdefg
...@@ -28,13 +28,13 @@ ...@@ -28,13 +28,13 @@
//fedcba|abcdefgh|hgfedcb //fedcba|abcdefgh|hgfedcb
#define EXTRAPOLATE(x, maxV) \ #define EXTRAPOLATE(x, maxV) \
{ \ { \
(x) = min( mad24((maxV)-1,2,-(x))+1 , max((x),-(x)-1) ); \ (x) = clamp(min( mad24((maxV)-1,2,-(x))+1 , max((x),-(x)-1) ), 0, (maxV)-1); \
} }
#elif defined BORDER_REFLECT_101 || defined BORDER_REFLECT101 #elif defined BORDER_REFLECT_101 || defined BORDER_REFLECT101
//gfedcb|abcdefgh|gfedcba //gfedcb|abcdefgh|gfedcba
#define EXTRAPOLATE(x, maxV) \ #define EXTRAPOLATE(x, maxV) \
{ \ { \
(x) = min( mad24((maxV)-1,2,-(x)), max((x),-(x)) ); \ (x) = clamp(min( mad24((maxV)-1,2,-(x)), max((x),-(x)) ), 0, (maxV)-1); \
} }
#else #else
#error No extrapolation method #error No extrapolation method
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
// aaaaaa|abcdefgh|hhhhhhh // aaaaaa|abcdefgh|hhhhhhh
#define EXTRAPOLATE(x, maxV) \ #define EXTRAPOLATE(x, maxV) \
{ \ { \
(x) = max(min((x), (maxV) - 1), 0); \ (x) = clamp((x), 0, (maxV)-1); \
} }
#elif defined BORDER_WRAP #elif defined BORDER_WRAP
// cdefgh|abcdefgh|abcdefg // cdefgh|abcdefgh|abcdefg
...@@ -62,13 +62,13 @@ ...@@ -62,13 +62,13 @@
// fedcba|abcdefgh|hgfedcb // fedcba|abcdefgh|hgfedcb
#define EXTRAPOLATE(x, maxV) \ #define EXTRAPOLATE(x, maxV) \
{ \ { \
(x) = min(((maxV)-1)*2-(x)+1, max((x),-(x)-1) ); \ (x) = clamp(min(((maxV)-1)*2-(x)+1, max((x),-(x)-1) ), 0, (maxV)-1); \
} }
#elif defined BORDER_REFLECT_101 || defined BORDER_REFLECT101 #elif defined BORDER_REFLECT_101 || defined BORDER_REFLECT101
// gfedcb|abcdefgh|gfedcba // gfedcb|abcdefgh|gfedcba
#define EXTRAPOLATE(x, maxV) \ #define EXTRAPOLATE(x, maxV) \
{ \ { \
(x) = min(((maxV)-1)*2-(x), max((x),-(x)) ); \ (x) = clamp(min(((maxV)-1)*2-(x), max((x),-(x)) ), 0, (maxV)-1); \
} }
#else #else
#error No extrapolation method #error No extrapolation method
......
...@@ -49,7 +49,7 @@ __kernel void sumConvert(__global const uchar * src1ptr, int src1_step, int src1 ...@@ -49,7 +49,7 @@ __kernel void sumConvert(__global const uchar * src1ptr, int src1_step, int src1
// aaaaaa|abcdefgh|hhhhhhh // aaaaaa|abcdefgh|hhhhhhh
#define EXTRAPOLATE(x, maxV) \ #define EXTRAPOLATE(x, maxV) \
{ \ { \
(x) = max(min((x), (maxV) - 1), 0); \ (x) = clamp((x), 0, (maxV)-1); \
} }
#elif defined BORDER_WRAP #elif defined BORDER_WRAP
// cdefgh|abcdefgh|abcdefg // cdefgh|abcdefgh|abcdefg
...@@ -61,13 +61,13 @@ __kernel void sumConvert(__global const uchar * src1ptr, int src1_step, int src1 ...@@ -61,13 +61,13 @@ __kernel void sumConvert(__global const uchar * src1ptr, int src1_step, int src1
// fedcba|abcdefgh|hgfedcb // fedcba|abcdefgh|hgfedcb
#define EXTRAPOLATE(x, maxV) \ #define EXTRAPOLATE(x, maxV) \
{ \ { \
(x) = min(((maxV)-1)*2-(x)+1, max((x),-(x)-1) ); \ (x) = clamp(min(((maxV)-1)*2-(x)+1, max((x),-(x)-1) ), 0, (maxV)-1); \
} }
#elif defined BORDER_REFLECT_101 #elif defined BORDER_REFLECT_101
// gfedcb|abcdefgh|gfedcba // gfedcb|abcdefgh|gfedcba
#define EXTRAPOLATE(x, maxV) \ #define EXTRAPOLATE(x, maxV) \
{ \ { \
(x) = min(((maxV)-1)*2-(x), max((x),-(x)) ); \ (x) = clamp(min(((maxV)-1)*2-(x), max((x),-(x)) ), 0, (maxV)-1); \
} }
#else #else
#error No extrapolation method #error No extrapolation method
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment