fixed ocl_integral
authorElena Gvozdeva <elena.gvozdeva@itseez.com>
Tue, 5 Aug 2014 07:55:18 +0000 (11:55 +0400)
committerElena Gvozdeva <elena.gvozdeva@itseez.com>
Tue, 5 Aug 2014 08:01:28 +0000 (12:01 +0400)
modules/imgproc/src/opencl/integral_sum.cl
modules/imgproc/test/ocl/test_imgproc.cpp

index 49a3bde..3c51c1a 100644 (file)
@@ -132,8 +132,11 @@ kernel void integral_sum_rows(__global const uchar *buf_ptr, int buf_step, int b
     }
     dst_sq_offset += dst_sq_step;
 
-    dst_sq = (__global sumSQT *)(dst_sq_ptr + mad24(x, dst_sq_step, dst_sq_offset));
-    dst_sq[0] = 0;
+    if (x < rows - 1)
+    {
+        dst_sq = (__global sumSQT *)(dst_sq_ptr + mad24(x, dst_sq_step, dst_sq_offset));
+        dst_sq[0] = 0;
+    }
 
     int buf_sq_index = mad24((int)sizeof(sumSQT), x, buf_sq_offset);
     sumSQT accum_sq = 0;
index 69d8f4e..ad8e26c 100644 (file)
@@ -347,7 +347,7 @@ OCL_TEST_P(Integral, Mat2)
         OCL_ON(cv::integral(usrc_roi, udst_roi, udst2_roi, sdepth, sqdepth));
 
         Near();
-        sqdepth == CV_32F ? Near2(2e-4, true) : Near2();
+        sqdepth == CV_32F ? Near2(1e-6, true) : Near2();
     }
 }