namespace cv { namespace cuda {
CV_EXPORTS cv::String getNppErrorMessage(int code);
CV_EXPORTS cv::String getCudaDriverApiErrorMessage(int code);
+
+ CV_EXPORTS GpuMat getInputMat(InputArray _src, Stream& stream);
+
+ CV_EXPORTS GpuMat getOutputMat(OutputArray _dst, int rows, int cols, int type, Stream& stream);
+ static inline GpuMat getOutputMat(OutputArray _dst, Size size, int type, Stream& stream)
+ {
+ return getOutputMat(_dst, size.height, size.width, type, stream);
+ }
+
+ CV_EXPORTS void syncOutput(const GpuMat& dst, OutputArray _dst, Stream& stream);
}}
#ifndef HAVE_CUDA
GpuMat::Allocator* allocator_;
};
- CV_EXPORTS GpuMat getInputMat(InputArray _src, Stream& stream);
-
- CV_EXPORTS GpuMat getOutputMat(OutputArray _dst, int rows, int cols, int type, Stream& stream);
- static inline GpuMat getOutputMat(OutputArray _dst, Size size, int type, Stream& stream)
- {
- return getOutputMat(_dst, size.height, size.width, type, stream);
- }
-
- CV_EXPORTS void syncOutput(const GpuMat& dst, OutputArray _dst, Stream& stream);
-
static inline void checkNppError(int code, const char* file, const int line, const char* func)
{
if (code < 0)
{
GpuMat src;
+#ifndef HAVE_CUDA
+ (void) _src;
+ (void) stream;
+ throw_no_cuda();
+#else
if (_src.kind() == _InputArray::CUDA_GPU_MAT)
{
src = _src.getGpuMat();
src = pool.getBuffer(_src.size(), _src.type());
src.upload(_src, stream);
}
+#endif
return src;
}
{
GpuMat dst;
+#ifndef HAVE_CUDA
+ (void) _dst;
+ (void) rows;
+ (void) cols;
+ (void) type;
+ (void) stream;
+ throw_no_cuda();
+#else
if (_dst.kind() == _InputArray::CUDA_GPU_MAT)
{
_dst.create(rows, cols, type);
BufferPool pool(stream);
dst = pool.getBuffer(rows, cols, type);
}
+#endif
return dst;
}
void cv::cuda::syncOutput(const GpuMat& dst, OutputArray _dst, Stream& stream)
{
+#ifndef HAVE_CUDA
+ (void) dst;
+ (void) _dst;
+ (void) stream;
+ throw_no_cuda();
+#else
if (_dst.kind() != _InputArray::CUDA_GPU_MAT)
{
if (stream)
else
dst.download(_dst);
}
+#endif
}
#ifndef HAVE_CUDA