reduce resize instantiates for tiny build
This commit is contained in:
parent
612888c066
commit
72685cf01c
@ -342,11 +342,13 @@ namespace cv { namespace gpu { namespace device
|
|||||||
template <> struct ResizeNearestDispatcher<uchar> : SelectImplForNearest<uchar> {};
|
template <> struct ResizeNearestDispatcher<uchar> : SelectImplForNearest<uchar> {};
|
||||||
template <> struct ResizeNearestDispatcher<uchar4> : SelectImplForNearest<uchar4> {};
|
template <> struct ResizeNearestDispatcher<uchar4> : SelectImplForNearest<uchar4> {};
|
||||||
|
|
||||||
|
#ifndef OPENCV_TINY_GPU_MODULE
|
||||||
template <> struct ResizeNearestDispatcher<ushort> : SelectImplForNearest<ushort> {};
|
template <> struct ResizeNearestDispatcher<ushort> : SelectImplForNearest<ushort> {};
|
||||||
template <> struct ResizeNearestDispatcher<ushort4> : SelectImplForNearest<ushort4> {};
|
template <> struct ResizeNearestDispatcher<ushort4> : SelectImplForNearest<ushort4> {};
|
||||||
|
|
||||||
template <> struct ResizeNearestDispatcher<short> : SelectImplForNearest<short> {};
|
template <> struct ResizeNearestDispatcher<short> : SelectImplForNearest<short> {};
|
||||||
template <> struct ResizeNearestDispatcher<short4> : SelectImplForNearest<short4> {};
|
template <> struct ResizeNearestDispatcher<short4> : SelectImplForNearest<short4> {};
|
||||||
|
#endif
|
||||||
|
|
||||||
template <> struct ResizeNearestDispatcher<float> : SelectImplForNearest<float> {};
|
template <> struct ResizeNearestDispatcher<float> : SelectImplForNearest<float> {};
|
||||||
template <> struct ResizeNearestDispatcher<float4> : SelectImplForNearest<float4> {};
|
template <> struct ResizeNearestDispatcher<float4> : SelectImplForNearest<float4> {};
|
||||||
@ -380,11 +382,13 @@ namespace cv { namespace gpu { namespace device
|
|||||||
template <> struct ResizeLinearDispatcher<uchar> : SelectImplForLinear<uchar> {};
|
template <> struct ResizeLinearDispatcher<uchar> : SelectImplForLinear<uchar> {};
|
||||||
template <> struct ResizeLinearDispatcher<uchar4> : SelectImplForLinear<uchar4> {};
|
template <> struct ResizeLinearDispatcher<uchar4> : SelectImplForLinear<uchar4> {};
|
||||||
|
|
||||||
|
#ifndef OPENCV_TINY_GPU_MODULE
|
||||||
template <> struct ResizeLinearDispatcher<ushort> : SelectImplForLinear<ushort> {};
|
template <> struct ResizeLinearDispatcher<ushort> : SelectImplForLinear<ushort> {};
|
||||||
template <> struct ResizeLinearDispatcher<ushort4> : SelectImplForLinear<ushort4> {};
|
template <> struct ResizeLinearDispatcher<ushort4> : SelectImplForLinear<ushort4> {};
|
||||||
|
|
||||||
template <> struct ResizeLinearDispatcher<short> : SelectImplForLinear<short> {};
|
template <> struct ResizeLinearDispatcher<short> : SelectImplForLinear<short> {};
|
||||||
template <> struct ResizeLinearDispatcher<short4> : SelectImplForLinear<short4> {};
|
template <> struct ResizeLinearDispatcher<short4> : SelectImplForLinear<short4> {};
|
||||||
|
#endif
|
||||||
|
|
||||||
template <> struct ResizeLinearDispatcher<float> : SelectImplForLinear<float> {};
|
template <> struct ResizeLinearDispatcher<float> : SelectImplForLinear<float> {};
|
||||||
template <> struct ResizeLinearDispatcher<float4> : SelectImplForLinear<float4> {};
|
template <> struct ResizeLinearDispatcher<float4> : SelectImplForLinear<float4> {};
|
||||||
@ -410,6 +414,7 @@ namespace cv { namespace gpu { namespace device
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef OPENCV_TINY_GPU_MODULE
|
||||||
template <> struct ResizeCubicDispatcher<uchar> : SelectImplForCubic<uchar> {};
|
template <> struct ResizeCubicDispatcher<uchar> : SelectImplForCubic<uchar> {};
|
||||||
template <> struct ResizeCubicDispatcher<uchar4> : SelectImplForCubic<uchar4> {};
|
template <> struct ResizeCubicDispatcher<uchar4> : SelectImplForCubic<uchar4> {};
|
||||||
|
|
||||||
@ -421,6 +426,7 @@ namespace cv { namespace gpu { namespace device
|
|||||||
|
|
||||||
template <> struct ResizeCubicDispatcher<float> : SelectImplForCubic<float> {};
|
template <> struct ResizeCubicDispatcher<float> : SelectImplForCubic<float> {};
|
||||||
template <> struct ResizeCubicDispatcher<float4> : SelectImplForCubic<float4> {};
|
template <> struct ResizeCubicDispatcher<float4> : SelectImplForCubic<float4> {};
|
||||||
|
#endif
|
||||||
|
|
||||||
// ResizeAreaDispatcher
|
// ResizeAreaDispatcher
|
||||||
|
|
||||||
@ -467,7 +473,11 @@ namespace cv { namespace gpu { namespace device
|
|||||||
{
|
{
|
||||||
ResizeNearestDispatcher<T>::call,
|
ResizeNearestDispatcher<T>::call,
|
||||||
ResizeLinearDispatcher<T>::call,
|
ResizeLinearDispatcher<T>::call,
|
||||||
|
#ifdef OPENCV_TINY_GPU_MODULE
|
||||||
|
0,
|
||||||
|
#else
|
||||||
ResizeCubicDispatcher<T>::call,
|
ResizeCubicDispatcher<T>::call,
|
||||||
|
#endif
|
||||||
ResizeAreaDispatcher<T>::call
|
ResizeAreaDispatcher<T>::call
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -482,6 +492,7 @@ namespace cv { namespace gpu { namespace device
|
|||||||
template void resize<uchar3>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
template void resize<uchar3>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
||||||
template void resize<uchar4>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
template void resize<uchar4>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
||||||
|
|
||||||
|
#ifndef OPENCV_TINY_GPU_MODULE
|
||||||
template void resize<ushort >(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
template void resize<ushort >(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
||||||
template void resize<ushort3>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
template void resize<ushort3>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
||||||
template void resize<ushort4>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
template void resize<ushort4>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
||||||
@ -489,6 +500,7 @@ namespace cv { namespace gpu { namespace device
|
|||||||
template void resize<short >(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
template void resize<short >(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
||||||
template void resize<short3>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
template void resize<short3>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
||||||
template void resize<short4>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
template void resize<short4>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
||||||
|
#endif
|
||||||
|
|
||||||
template void resize<float >(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
template void resize<float >(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
||||||
template void resize<float3>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
template void resize<float3>(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
||||||
|
@ -57,6 +57,18 @@ namespace cv { namespace gpu { namespace device
|
|||||||
void cv::gpu::resize(const GpuMat& src, GpuMat& dst, Size dsize, double fx, double fy, int interpolation, Stream& stream)
|
void cv::gpu::resize(const GpuMat& src, GpuMat& dst, Size dsize, double fx, double fy, int interpolation, Stream& stream)
|
||||||
{
|
{
|
||||||
typedef void (*func_t)(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
typedef void (*func_t)(const PtrStepSzb& src, const PtrStepSzb& srcWhole, int yoff, int xoff, const PtrStepSzb& dst, float fy, float fx, int interpolation, cudaStream_t stream);
|
||||||
|
|
||||||
|
#ifdef OPENCV_TINY_GPU_MODULE
|
||||||
|
static const func_t funcs[6][4] =
|
||||||
|
{
|
||||||
|
{device::resize<uchar> , 0 /*device::resize<uchar2>*/ , device::resize<uchar3> , device::resize<uchar4> },
|
||||||
|
{0, 0, 0, 0},
|
||||||
|
{0, 0, 0, 0},
|
||||||
|
{0, 0, 0, 0},
|
||||||
|
{0, 0, 0, 0},
|
||||||
|
{device::resize<float> , 0 /*device::resize<float2>*/ , device::resize<float3> , device::resize<float4> }
|
||||||
|
};
|
||||||
|
#else
|
||||||
static const func_t funcs[6][4] =
|
static const func_t funcs[6][4] =
|
||||||
{
|
{
|
||||||
{device::resize<uchar> , 0 /*device::resize<uchar2>*/ , device::resize<uchar3> , device::resize<uchar4> },
|
{device::resize<uchar> , 0 /*device::resize<uchar2>*/ , device::resize<uchar3> , device::resize<uchar4> },
|
||||||
@ -66,6 +78,7 @@ void cv::gpu::resize(const GpuMat& src, GpuMat& dst, Size dsize, double fx, doub
|
|||||||
{0 /*device::resize<int>*/ , 0 /*device::resize<int2>*/ , 0 /*device::resize<int3>*/ , 0 /*device::resize<int4>*/ },
|
{0 /*device::resize<int>*/ , 0 /*device::resize<int2>*/ , 0 /*device::resize<int3>*/ , 0 /*device::resize<int4>*/ },
|
||||||
{device::resize<float> , 0 /*device::resize<float2>*/ , device::resize<float3> , device::resize<float4> }
|
{device::resize<float> , 0 /*device::resize<float2>*/ , device::resize<float3> , device::resize<float4> }
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
CV_Assert( src.depth() <= CV_32F && src.channels() <= 4 );
|
CV_Assert( src.depth() <= CV_32F && src.channels() <= 4 );
|
||||||
CV_Assert( interpolation == INTER_NEAREST || interpolation == INTER_LINEAR || interpolation == INTER_CUBIC || interpolation == INTER_AREA );
|
CV_Assert( interpolation == INTER_NEAREST || interpolation == INTER_LINEAR || interpolation == INTER_CUBIC || interpolation == INTER_AREA );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user