diff --git a/modules/imgproc/src/canny.cpp b/modules/imgproc/src/canny.cpp index 2161db91c..66ac7dce5 100644 --- a/modules/imgproc/src/canny.cpp +++ b/modules/imgproc/src/canny.cpp @@ -230,7 +230,7 @@ void cv::Canny( InputArray _src, OutputArray _dst, if ((stack_top - stack_bottom) + src.cols > maxsize) { int sz = (int)(stack_top - stack_bottom); - maxsize = maxsize * 3/2; + maxsize = std::max(sz + src.cols, maxsize * 3/2); stack.resize(maxsize); stack_bottom = &stack[0]; stack_top = stack_bottom + sz;