diff --git a/modules/core/src/minmax.cpp b/modules/core/src/minmax.cpp index 3961c09753..5c819fcd61 100644 --- a/modules/core/src/minmax.cpp +++ b/modules/core/src/minmax.cpp @@ -1437,7 +1437,7 @@ void cv::minMaxIdx(InputArray _src, double* minVal, if (src.dims <= 2) { - if ((size_t)src.step == (size_t)mask.step) + if ((size_t)src.step == (size_t)mask.step || mask.empty()) { CALL_HAL(minMaxIdx, cv_hal_minMaxIdx, src.data, src.step, src.cols*cn, src.rows, src.depth(), minVal, maxVal, minIdx, maxIdx, mask.data); @@ -1446,7 +1446,7 @@ void cv::minMaxIdx(InputArray _src, double* minVal, CALL_HAL(minMaxIdxMaskStep, cv_hal_minMaxIdxMaskStep, src.data, src.step, src.cols*cn, src.rows, src.depth(), minVal, maxVal, minIdx, maxIdx, mask.data, mask.step); } - else if (src.isContinuous() && mask.isContinuous()) + else if (src.isContinuous() && (mask.isContinuous() || mask.empty())) { int res = cv_hal_minMaxIdx(src.data, 0, (int)src.total()*cn, 1, src.depth(), minVal, maxVal, minIdx, maxIdx, mask.data);