|
|
|
@ -49,7 +49,7 @@ |
|
|
|
|
#include "../limits.hpp" |
|
|
|
|
#include "../functional.hpp" |
|
|
|
|
|
|
|
|
|
namespace cv { namespace cuda { namespace cudev |
|
|
|
|
namespace cv { namespace cuda { namespace device |
|
|
|
|
{ |
|
|
|
|
#ifndef CV_DESCALE |
|
|
|
|
#define CV_DESCALE(x, n) (((x) + (1 << ((n)-1))) >> (n)) |
|
|
|
@ -146,7 +146,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB2RGB_TRAITS(name, scn, dcn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2RGB<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2RGB<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -219,7 +219,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB2RGB5x5_TRAITS(name, scn, bidx, green_bits) \ |
|
|
|
|
struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2RGB5x5<scn, bidx, green_bits> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2RGB5x5<scn, bidx, green_bits> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -300,7 +300,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB5x52RGB_TRAITS(name, dcn, bidx, green_bits) \ |
|
|
|
|
struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB5x52RGB<dcn, bidx, green_bits> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB5x52RGB<dcn, bidx, green_bits> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -346,7 +346,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_GRAY2RGB_TRAITS(name, dcn) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::Gray2RGB<T, dcn> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::Gray2RGB<T, dcn> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -388,7 +388,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_GRAY2RGB5x5_TRAITS(name, green_bits) \ |
|
|
|
|
struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::Gray2RGB5x5<green_bits> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::Gray2RGB5x5<green_bits> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -430,7 +430,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB5x52GRAY_TRAITS(name, green_bits) \ |
|
|
|
|
struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB5x52Gray<green_bits> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB5x52Gray<green_bits> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -481,7 +481,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB2GRAY_TRAITS(name, scn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2Gray<T, scn, bidx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2Gray<T, scn, bidx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -532,7 +532,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB2YUV_TRAITS(name, scn, dcn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2YUV<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2YUV<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -620,7 +620,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_YUV2RGB_TRAITS(name, scn, dcn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::YUV2RGB<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::YUV2RGB<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -699,7 +699,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB2YCrCb_TRAITS(name, scn, dcn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2YCrCb<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2YCrCb<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -778,7 +778,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_YCrCb2RGB_TRAITS(name, scn, dcn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::YCrCb2RGB<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::YCrCb2RGB<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -854,7 +854,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB2XYZ_TRAITS(name, scn, dcn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2XYZ<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2XYZ<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -929,7 +929,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_XYZ2RGB_TRAITS(name, scn, dcn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::XYZ2RGB<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::XYZ2RGB<T, scn, dcn, bidx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1067,7 +1067,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB2HSV_TRAITS(name, scn, dcn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2HSV<T, scn, dcn, bidx, 180> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2HSV<T, scn, dcn, bidx, 180> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1075,7 +1075,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <typename T> struct name ## _full_traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2HSV<T, scn, dcn, bidx, 256> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2HSV<T, scn, dcn, bidx, 256> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1083,7 +1083,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <> struct name ## _traits<float> \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2HSV<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2HSV<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1091,7 +1091,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <> struct name ## _full_traits<float> \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2HSV<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2HSV<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1207,7 +1207,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_HSV2RGB_TRAITS(name, scn, dcn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::HSV2RGB<T, scn, dcn, bidx, 180> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::HSV2RGB<T, scn, dcn, bidx, 180> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1215,7 +1215,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <typename T> struct name ## _full_traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::HSV2RGB<T, scn, dcn, bidx, 255> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::HSV2RGB<T, scn, dcn, bidx, 255> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1223,7 +1223,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <> struct name ## _traits<float> \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::HSV2RGB<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::HSV2RGB<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1231,7 +1231,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <> struct name ## _full_traits<float> \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::HSV2RGB<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::HSV2RGB<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1340,7 +1340,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB2HLS_TRAITS(name, scn, dcn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2HLS<T, scn, dcn, bidx, 180> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2HLS<T, scn, dcn, bidx, 180> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1348,7 +1348,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <typename T> struct name ## _full_traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2HLS<T, scn, dcn, bidx, 256> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2HLS<T, scn, dcn, bidx, 256> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1356,7 +1356,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <> struct name ## _traits<float> \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2HLS<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2HLS<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1364,7 +1364,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <> struct name ## _full_traits<float> \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2HLS<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2HLS<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1480,7 +1480,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_HLS2RGB_TRAITS(name, scn, dcn, bidx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::HLS2RGB<T, scn, dcn, bidx, 180> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::HLS2RGB<T, scn, dcn, bidx, 180> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1488,7 +1488,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <typename T> struct name ## _full_traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::HLS2RGB<T, scn, dcn, bidx, 255> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::HLS2RGB<T, scn, dcn, bidx, 255> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1496,7 +1496,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <> struct name ## _traits<float> \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::HLS2RGB<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::HLS2RGB<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1504,7 +1504,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
}; \
|
|
|
|
|
template <> struct name ## _full_traits<float> \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::HLS2RGB<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::HLS2RGB<float, scn, dcn, bidx, 360> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1649,7 +1649,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB2Lab_TRAITS(name, scn, dcn, srgb, blueIdx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2Lab<T, scn, dcn, srgb, blueIdx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2Lab<T, scn, dcn, srgb, blueIdx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1762,7 +1762,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_Lab2RGB_TRAITS(name, scn, dcn, srgb, blueIdx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::Lab2RGB<T, scn, dcn, srgb, blueIdx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::Lab2RGB<T, scn, dcn, srgb, blueIdx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1861,7 +1861,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_RGB2Luv_TRAITS(name, scn, dcn, srgb, blueIdx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::RGB2Luv<T, scn, dcn, srgb, blueIdx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::RGB2Luv<T, scn, dcn, srgb, blueIdx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
@ -1962,7 +1962,7 @@ namespace cv { namespace cuda { namespace cudev |
|
|
|
|
#define OPENCV_GPU_IMPLEMENT_Luv2RGB_TRAITS(name, scn, dcn, srgb, blueIdx) \ |
|
|
|
|
template <typename T> struct name ## _traits \
|
|
|
|
|
{ \
|
|
|
|
|
typedef ::cv::cuda::cudev::color_detail::Luv2RGB<T, scn, dcn, srgb, blueIdx> functor_type; \
|
|
|
|
|
typedef ::cv::cuda::device::color_detail::Luv2RGB<T, scn, dcn, srgb, blueIdx> functor_type; \
|
|
|
|
|
static __host__ __device__ __forceinline__ functor_type create_functor() \
|
|
|
|
|
{ \
|
|
|
|
|
return functor_type(); \
|
|
|
|
|