Merge commit '0566ab4d3d' into merge-2.4
authorRoman Donchenko <roman.donchenko@itseez.com>
Mon, 30 Dec 2013 12:51:46 +0000 (16:51 +0400)
committerRoman Donchenko <roman.donchenko@itseez.com>
Mon, 30 Dec 2013 12:51:46 +0000 (16:51 +0400)
Conflicts:
modules/core/src/system.cpp

modules/core/src/system.cpp
modules/ocl/src/gftt.cpp
modules/ocl/src/opencl/imgproc_canny.cl

index 00fc578..1b25106 100644 (file)
@@ -107,7 +107,7 @@ std::wstring GetTempPathWinRT()
     if (FAILED(WindowsCreateStringReference(RuntimeClass_Windows_Storage_ApplicationData,
                                             (UINT32)wcslen(RuntimeClass_Windows_Storage_ApplicationData), &hstrHead, &str)))
         return wstr;
-    if (FAILED(Windows::Foundation::GetActivationFactory(str, appdataFactory.ReleaseAndGetAddressOf())))
+    if (FAILED(RoGetActivationFactory(str, IID_PPV_ARGS(appdataFactory.ReleaseAndGetAddressOf()))))
         return wstr;
     if (FAILED(appdataFactory->get_Current(appdataRef.ReleaseAndGetAddressOf())))
         return wstr;
index 09cd2a1..bf1036b 100644 (file)
@@ -208,7 +208,7 @@ void cv::ocl::GoodFeaturesToTrackDetector_OCL::operator ()(const oclMat& image,
     if(!use_cpu_sorter)
     {   // round to 2^n
         unsigned int n=1;
-        for(n=1;n<(unsigned int)corner_array_size;n<<=1);
+        for(n=1;n<(unsigned int)corner_array_size;n<<=1) ;
         corner_array_size = (int)n;
 
         ensureSizeIsEnough(1, corner_array_size , CV_32FC2, tmpCorners_);
index 0a54f14..2ddfdae 100644 (file)
@@ -381,8 +381,8 @@ struct PtrStepSz {
     int step;
     int rows, cols;
 };
-inline int get(struct PtrStepSz data, int y, int x) { return *((__global int *)((__global char*)data.ptr + data.step * y + sizeof(int) * x)); }
-inline void set(struct PtrStepSz data, int y, int x, int value) { *((__global int *)((__global char*)data.ptr + data.step * y + sizeof(int) * x)) = value; }
+inline int get(struct PtrStepSz data, int y, int x) { return *((__global int *)((__global char*)data.ptr + data.step * (y + 1) + sizeof(int) * (x + 1))); }
+inline void set(struct PtrStepSz data, int y, int x, int value) { *((__global int *)((__global char*)data.ptr + data.step * (y + 1) + sizeof(int) * (x + 1))) = value; }
 
 //////////////////////////////////////////////////////////////////////////////////////////
 // do Hysteresis for pixel whose edge type is 1
@@ -494,7 +494,7 @@ edgesHysteresisLocal
         }
     }
 #else
-    struct PtrStepSz map = {((__global int *)((__global char*)map_ptr + map_offset)), map_step, rows, cols};
+    struct PtrStepSz map = {((__global int *)((__global char*)map_ptr + map_offset)), map_step, rows + 1, cols + 1};
 
     __local int smem[18][18];
 
@@ -507,13 +507,13 @@ edgesHysteresisLocal
 
     smem[threadIdx.y + 1][threadIdx.x + 1] = x < map.cols && y < map.rows ? get(map, y, x) : 0;
     if (threadIdx.y == 0)
-        smem[0][threadIdx.x + 1] = y > 0 ? get(map, y - 1, x) : 0;
+        smem[0][threadIdx.x + 1] = x < map.cols ? get(map, y - 1, x) : 0;
     if (threadIdx.y == blockDim.y - 1)
         smem[blockDim.y + 1][threadIdx.x + 1] = y + 1 < map.rows ? get(map, y + 1, x) : 0;
     if (threadIdx.x == 0)
-        smem[threadIdx.y + 1][0] = x > 0 ? get(map, y, x - 1) : 0;
+        smem[threadIdx.y + 1][0] = y < map.rows ? get(map, y, x - 1) : 0;
     if (threadIdx.x == blockDim.x - 1)
-        smem[threadIdx.y + 1][blockDim.x + 1] = x + 1 < map.cols ? get(map, y, x + 1) : 0;
+        smem[threadIdx.y + 1][blockDim.x + 1] = x + 1 < map.cols && y < map.rows ? get(map, y, x + 1) : 0;
     if (threadIdx.x == 0 && threadIdx.y == 0)
         smem[0][0] = y > 0 && x > 0 ? get(map, y - 1, x - 1) : 0;
     if (threadIdx.x == blockDim.x - 1 && threadIdx.y == 0)
@@ -525,7 +525,7 @@ edgesHysteresisLocal
 
     barrier(CLK_LOCAL_MEM_FENCE);
 
-    if (x >= map.cols || y >= map.rows)
+    if (x >= cols || y >= rows)
         return;
 
     int n;
@@ -576,7 +576,7 @@ edgesHysteresisLocal
     if (n > 0)
     {
         const int ind = atomic_inc(counter);
-        st[ind] = (ushort2)(x, y);
+        st[ind] = (ushort2)(x + 1, y + 1);
     }
 #endif
 }