Merge pull request #12916 from lqy123000:bugfix_templmatch

* avoid rounding errors

* imgproc: replace condition in matchTemplate
This commit is contained in:
lqy123000 2018-11-07 00:13:48 +08:00 committed by Alexander Alekhin
parent d9d8ad20a0
commit cceeca3052

View File

@ -947,7 +947,12 @@ static void common_matchTemplate( Mat& img, Mat& templ, Mat& result, int method,
if( isNormed )
{
t = std::sqrt(MAX(wndSum2 - wndMean2,0))*templNorm;
double diff2 = MAX(wndSum2 - wndMean2, 0);
if (diff2 <= std::min(0.5, 10 * FLT_EPSILON * wndSum2))
t = 0; // avoid rounding errors
else
t = std::sqrt(diff2)*templNorm;
if( fabs(num) < t )
num /= t;
else if( fabs(num) < t*1.125 )