diff --git a/modules/imgproc/src/templmatch.cpp b/modules/imgproc/src/templmatch.cpp index 6aa4e08409..ad45114372 100644 --- a/modules/imgproc/src/templmatch.cpp +++ b/modules/imgproc/src/templmatch.cpp @@ -779,9 +779,11 @@ static void matchTemplateMask( InputArray _img, InputArray _templ, OutputArray _ } if (mask.depth() == CV_8U) { - // To keep compatibility to other masks in OpenCV: CV_8U masks are binary masks - threshold(mask, mask, 0/*threshold*/, 1.0/*maxVal*/, THRESH_BINARY); - mask.convertTo(mask, CV_32F); + Mat mask_copy = mask.clone(); // Create a copy of the mask + + threshold(mask_copy, mask_copy, 0/*threshold*/, 1.0/*maxVal*/, THRESH_BINARY); + mask_copy.convertTo(mask_copy, CV_32F); + } Size corrSize(img.cols - templ.cols + 1, img.rows - templ.rows + 1);