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) if (residual != 0)
{ {
int residualStep = MAX(histSize / residual, 1); 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]++; tileHist[i]++;
} }
} }

@ -201,7 +201,10 @@ __kernel void calcLut(__global __const uchar * src, const int srcStep,
tHistVal += redistBatch; tHistVal += redistBatch;
int residual = totalClipped - redistBatch * 256; 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; ++tHistVal;
} }

Loading…
Cancel
Save