diff --git a/modules/cudev/include/opencv2/cudev/util/saturate_cast.hpp b/modules/cudev/include/opencv2/cudev/util/saturate_cast.hpp index c256e7d908..00bbff3de9 100644 --- a/modules/cudev/include/opencv2/cudev/util/saturate_cast.hpp +++ b/modules/cudev/include/opencv2/cudev/util/saturate_cast.hpp @@ -62,6 +62,8 @@ template __device__ __forceinline__ T saturate_cast(ushort v) { ret template __device__ __forceinline__ T saturate_cast(short v) { return T(v); } template __device__ __forceinline__ T saturate_cast(uint v) { return T(v); } template __device__ __forceinline__ T saturate_cast(int v) { return T(v); } +template __device__ __forceinline__ T saturate_cast(signed long v) { return T(v); } +template __device__ __forceinline__ T saturate_cast(unsigned long v) { return T(v); } template __device__ __forceinline__ T saturate_cast(signed long long v) { return T(v); } template __device__ __forceinline__ T saturate_cast(unsigned long long v) { return T(v); } template __device__ __forceinline__ T saturate_cast(float v) { return T(v); } diff --git a/modules/cudev/include/opencv2/cudev/util/vec_traits.hpp b/modules/cudev/include/opencv2/cudev/util/vec_traits.hpp index 3fdd8f4a84..ea0a4dd418 100644 --- a/modules/cudev/include/opencv2/cudev/util/vec_traits.hpp +++ b/modules/cudev/include/opencv2/cudev/util/vec_traits.hpp @@ -50,7 +50,7 @@ #include "opencv2/core/cuda/cuda_compat.hpp" namespace cv { - + using cv::cuda::device::compat::double4; using cv::cuda::device::compat::make_double4; @@ -76,6 +76,8 @@ CV_CUDEV_MAKE_VEC_INST(int) CV_CUDEV_MAKE_VEC_INST(uint) CV_CUDEV_MAKE_VEC_INST(float) CV_CUDEV_MAKE_VEC_INST(double) +CV_CUDEV_MAKE_VEC_INST(long) +CV_CUDEV_MAKE_VEC_INST(ulong) #undef CV_CUDEV_MAKE_VEC_INST @@ -142,6 +144,8 @@ CV_CUDEV_VEC_TRAITS_INST(int) CV_CUDEV_VEC_TRAITS_INST(uint) CV_CUDEV_VEC_TRAITS_INST(float) CV_CUDEV_VEC_TRAITS_INST(double) +CV_CUDEV_VEC_TRAITS_INST(long) +CV_CUDEV_VEC_TRAITS_INST(ulong) #undef CV_CUDEV_VEC_TRAITS_INST