diff --git a/modules/imgproc/src/histogram.cpp b/modules/imgproc/src/histogram.cpp index 86575c9be3..71127b6385 100644 --- a/modules/imgproc/src/histogram.cpp +++ b/modules/imgproc/src/histogram.cpp @@ -1940,10 +1940,16 @@ static void getUMatIndex(const std::vector & um, int cn, int & idx, int & int ccn = um[i].channels(); totalChannels += ccn; - if (totalChannels >= cn) + if (totalChannels == cn) + { + idx = (int)(i + 1); + cnidx = 0; + return; + } + else if (totalChannels > cn) { idx = (int)i; - cnidx = i == 0 ? cn : cn % (totalChannels - ccn); + cnidx = i == 0 ? cn : (cn - totalChannels + ccn); return; } }