Fix the OpenCL portion to match the c++ code.

Fix an undiscovered bug in the c++ code.
pull/7538/head
Tetragramm 8 years ago
parent c6772a8f5d
commit 17df65e666
  1. 2
      modules/imgproc/src/clahe.cpp
  2. 5
      modules/imgproc/src/opencl/clahe.cl

@ -215,7 +215,7 @@ namespace
if (residual != 0)
{
int residualStep = MAX(histSize / residual, 1);
for (int i = 0; i < histSize; i += residualStep)
for (int i = 0; i < histSize && residual > 0; i += residualStep, residual--)
tileHist[i]++;
}
}

@ -201,7 +201,10 @@ __kernel void calcLut(__global __const uchar * src, const int srcStep,
tHistVal += redistBatch;
int residual = totalClipped - redistBatch * 256;
if (tid < residual)
int rStep = 256 / residual;
if (rStep < 1)
rStep = 1;
if (tid%rStep == 0 && (tid/rStep)<residual)
++tHistVal;
}

Loading…
Cancel
Save