From 6157db6462e1954bf3a10310c607da0bdfa9aef7 Mon Sep 17 00:00:00 2001 From: captain-n3m0 Date: Mon, 15 May 2023 17:31:43 +0530 Subject: [PATCH 1/2] Fixed matchTemplate function. #23585 --- modules/imgproc/src/templmatch.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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); From c97942cf7860544df33482b667fcb07b95b8740e Mon Sep 17 00:00:00 2001 From: Dmitry Kurtaev Date: Fri, 26 May 2023 18:51:33 +0300 Subject: [PATCH 2/2] Fix mask thresholding --- modules/imgproc/src/templmatch.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/imgproc/src/templmatch.cpp b/modules/imgproc/src/templmatch.cpp index ad45114372..67845e7429 100644 --- a/modules/imgproc/src/templmatch.cpp +++ b/modules/imgproc/src/templmatch.cpp @@ -779,11 +779,9 @@ static void matchTemplateMask( InputArray _img, InputArray _templ, OutputArray _ } if (mask.depth() == CV_8U) { - 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); - + Mat maskBin; + threshold(mask, maskBin, 0/*threshold*/, 1.0/*maxVal*/, THRESH_BINARY); + maskBin.convertTo(mask, CV_32F); } Size corrSize(img.cols - templ.cols + 1, img.rows - templ.rows + 1);