added call to IPP's ippiDistanceTransform_5x5_8u32f_C1R (by Alexander Kapustin)
authorVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Mon, 22 Jul 2013 10:20:13 +0000 (14:20 +0400)
committerVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Mon, 22 Jul 2013 10:20:13 +0000 (14:20 +0400)
modules/imgproc/src/distransform.cpp

index d3e6f90..a09b940 100644 (file)
@@ -779,6 +779,16 @@ cvDistTransform( const void* srcarr, void* dstarr,
 
         if( !labels )
         {
+        #if defined (HAVE_IPP) && (IPP_VERSION_MAJOR >= 7)
+            if( maskSize == CV_DIST_MASK_5 )
+            {
+                IppiSize roi = { src->cols, src->rows };
+                if( ippiDistanceTransform_5x5_8u32f_C1R(
+                        src->data.ptr, src->step,
+                        dst->data.fl, dst->step, roi, _mask) >= 0 )
+                    return;
+            }
+        #endif
             CvDistTransFunc func = maskSize == CV_DIST_MASK_3 ?
                 icvDistanceTransform_3x3_C1R :
                 icvDistanceTransform_5x5_C1R;