\r
namespace\r
{\r
- inline void cartToPolar_caller(const GpuMat& x, const GpuMat& y, GpuMat& mag, bool magSqr, GpuMat& angle, bool angleInDegrees, cudaStream_t stream)\r
+ inline void cartToPolar_caller(const GpuMat& x, const GpuMat& y, GpuMat* mag, bool magSqr, GpuMat* angle, bool angleInDegrees, cudaStream_t stream)\r
{\r
CV_DbgAssert(x.size() == y.size() && x.type() == y.type());\r
CV_Assert(x.depth() == CV_32F);\r
\r
- mag.create(x.size(), x.type());\r
- angle.create(x.size(), x.type());\r
+ if (mag)\r
+ mag->create(x.size(), x.type());\r
+ if (angle)\r
+ angle->create(x.size(), x.type());\r
\r
GpuMat x1cn = x.reshape(1);\r
GpuMat y1cn = y.reshape(1);\r
- GpuMat mag1cn = mag.reshape(1);\r
- GpuMat angle1cn = angle.reshape(1);\r
+ GpuMat mag1cn = mag ? mag->reshape(1) : GpuMat();\r
+ GpuMat angle1cn = angle ? angle->reshape(1) : GpuMat();\r
\r
mathfunc::cartToPolar_gpu(x1cn, y1cn, mag1cn, magSqr, angle1cn, angleInDegrees, stream);\r
}\r
\r
void cv::gpu::magnitude(const GpuMat& x, const GpuMat& y, GpuMat& dst)\r
{\r
- ::cartToPolar_caller(x, y, dst, false, GpuMat(), false, 0);\r
+ ::cartToPolar_caller(x, y, &dst, false, 0, false, 0);\r
}\r
\r
void cv::gpu::magnitude(const GpuMat& x, const GpuMat& y, GpuMat& dst, const Stream& stream)\r
{\r
- ::cartToPolar_caller(x, y, dst, false, GpuMat(), false, StreamAccessor::getStream(stream));\r
+ ::cartToPolar_caller(x, y, &dst, false, 0, false, StreamAccessor::getStream(stream));\r
}\r
\r
void cv::gpu::magnitudeSqr(const GpuMat& x, const GpuMat& y, GpuMat& dst)\r
{\r
- ::cartToPolar_caller(x, y, dst, true, GpuMat(), false, 0);\r
+ ::cartToPolar_caller(x, y, &dst, true, 0, false, 0);\r
}\r
\r
void cv::gpu::magnitudeSqr(const GpuMat& x, const GpuMat& y, GpuMat& dst, const Stream& stream)\r
{\r
- ::cartToPolar_caller(x, y, dst, true, GpuMat(), false, StreamAccessor::getStream(stream));\r
+ ::cartToPolar_caller(x, y, &dst, true, 0, false, StreamAccessor::getStream(stream));\r
}\r
\r
void cv::gpu::phase(const GpuMat& x, const GpuMat& y, GpuMat& angle, bool angleInDegrees)\r
{\r
- ::cartToPolar_caller(x, y, GpuMat(), false, angle, angleInDegrees, 0);\r
+ ::cartToPolar_caller(x, y, 0, false, &angle, angleInDegrees, 0);\r
}\r
\r
void cv::gpu::phase(const GpuMat& x, const GpuMat& y, GpuMat& angle, bool angleInDegrees, const Stream& stream)\r
{ \r
- ::cartToPolar_caller(x, y, GpuMat(), false, angle, angleInDegrees, StreamAccessor::getStream(stream));\r
+ ::cartToPolar_caller(x, y, 0, false, &angle, angleInDegrees, StreamAccessor::getStream(stream));\r
}\r
\r
void cv::gpu::cartToPolar(const GpuMat& x, const GpuMat& y, GpuMat& mag, GpuMat& angle, bool angleInDegrees)\r
{\r
- ::cartToPolar_caller(x, y, mag, false, angle, angleInDegrees, 0);\r
+ ::cartToPolar_caller(x, y, &mag, false, &angle, angleInDegrees, 0);\r
}\r
\r
void cv::gpu::cartToPolar(const GpuMat& x, const GpuMat& y, GpuMat& mag, GpuMat& angle, bool angleInDegrees, const Stream& stream)\r
{\r
- ::cartToPolar_caller(x, y, mag, false, angle, angleInDegrees, StreamAccessor::getStream(stream));\r
+ ::cartToPolar_caller(x, y, &mag, false, &angle, angleInDegrees, StreamAccessor::getStream(stream));\r
}\r
\r
void cv::gpu::polarToCart(const GpuMat& magnitude, const GpuMat& angle, GpuMat& x, GpuMat& y, bool angleInDegrees)\r