step*=2;
}
+#ifdef HAVE_TBB
/* Calculate hessian determinant and trace samples in each layer*/
cv::parallel_for( cv::BlockedRange(0, nTotalLayers),
cv::SURFBuildInvoker(sum,sizes,sampleSteps,dets,traces) );
cv::parallel_for( cv::BlockedRange(0, nMiddleLayers),
cv::SURFFindInvoker(sum,mask_sum,params,dets,traces,sizes,
sampleSteps,middleIndices,points) );
+#else
+ cv::SURFBuildInvoker(sum,sizes,sampleSteps,dets,traces)
+ (cv::BlockedRange(0, nTotalLayers));
+
+ cv::SURFFindInvoker(sum,mask_sum,params,dets,traces,sizes, sampleSteps,middleIndices,points)
+ ( cv::BlockedRange(0, nMiddleLayers) );
+#endif
/* Clean-up */
for( layer = 0; layer < nTotalLayers; layer++ )
if ( N > 0 )
+ {
+#ifdef HAVE_TBB
cv::parallel_for(cv::BlockedRange(0, N),
cv::SURFInvoker(¶ms, keypoints, descriptors, img, sum) );
+#else
+ cv::SURFInvoker invoker(¶ms, keypoints, descriptors, img, sum);
+ invoker(cv::BlockedRange(0, N));
+#endif
+ }
/* remove keypoints that were marked for deletion */