IPP: fixed ipp_matchTemplate
authorElena Gvozdeva <elena.gvozdeva@itseez.com>
Thu, 15 May 2014 09:05:27 +0000 (13:05 +0400)
committerElena Gvozdeva <elena.gvozdeva@itseez.com>
Thu, 15 May 2014 09:05:27 +0000 (13:05 +0400)
modules/imgproc/src/templmatch.cpp

index 3565eee..511c8bd 100644 (file)
@@ -634,7 +634,9 @@ void cv::matchTemplate( InputArray _img, InputArray _templ, OutputArray _result,
 #endif
 
 #if defined HAVE_IPP
-    if (method == CV_TM_SQDIFF && cn == 1)
+    bool useIppMT = (templ.rows < img.rows/2 && templ.cols < img.cols/2);
+
+    if (method == CV_TM_SQDIFF && cn == 1 && useIppMT)
     {
         if (ipp_sqrDistance(img, templ, result))
             return;
@@ -643,7 +645,7 @@ void cv::matchTemplate( InputArray _img, InputArray _templ, OutputArray _result,
 #endif
 
 #if defined HAVE_IPP
-    if (cn == 1)
+    if (cn == 1 && useIppMT)
     {
         if (!ipp_crossCorr(img, templ, result))
         {