diff --git a/modules/core/include/opencv2/core/types_c.h b/modules/core/include/opencv2/core/types_c.h index 3a0830463254fed88c731fed75d3b339ac240762..8db2fe7661b09720da205b734fc5bbd51181146d 100644 --- a/modules/core/include/opencv2/core/types_c.h +++ b/modules/core/include/opencv2/core/types_c.h @@ -315,6 +315,8 @@ CV_INLINE int cvRound( double value ) fistp t; } return t; +#elif defined _MSC_VER && defined _M_ARM && defined HAVE_TEGRA_OPTIMIZATION + TEGRA_ROUND(value); #elif defined HAVE_LRINT || defined CV_ICC || defined __GNUC__ # ifdef HAVE_TEGRA_OPTIMIZATION TEGRA_ROUND(value); @@ -324,7 +326,7 @@ CV_INLINE int cvRound( double value ) #else double intpart, fractpart; fractpart = modf(value, &intpart); - if ((abs(fractpart) != 0.5) || ((((int)intpart) % 2) != 0)) + if ((fabs(fractpart) != 0.5) || ((((int)intpart) % 2) != 0)) return (int)(value + (value >= 0 ? 0.5 : -0.5)); else return (int)intpart; diff --git a/modules/imgproc/src/imgwarp.cpp b/modules/imgproc/src/imgwarp.cpp index 2fe80616a843ca3b3a8906067c21b92225eb0711..848f6e980dc71926b300df2329312588eb0ea025 100644 --- a/modules/imgproc/src/imgwarp.cpp +++ b/modules/imgproc/src/imgwarp.cpp @@ -1740,7 +1740,7 @@ void cv::resize( InputArray _src, OutputArray _dst, Size dsize, #ifdef HAVE_TEGRA_OPTIMIZATION - if (tegra::resize(src, dst, inv_scale_x, inv_scale_y, interpolation)) + if (tegra::resize(src, dst, (float)inv_scale_x, (float)inv_scale_y, interpolation)) return; #endif