Commit 1922e50f authored by Alexey Spizhevoy's avatar Alexey Spizhevoy

refactoring: made gpu bitwise operations inline

parent 0465b89e
......@@ -558,29 +558,21 @@ namespace cv
//! performs per-elements bit-wise inversion
CV_EXPORTS void bitwise_not(const GpuMat& src, GpuMat& dst, const GpuMat& mask=GpuMat());
//! version without mask
CV_EXPORTS GpuMat operator ~ (const GpuMat& src);
//! async version
CV_EXPORTS void bitwise_not(const GpuMat& src, GpuMat& dst, const GpuMat& mask, const Stream& stream);
//! calculates per-element bit-wise disjunction of two arrays
CV_EXPORTS void bitwise_or(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask=GpuMat());
//! version without mask
CV_EXPORTS GpuMat operator | (const GpuMat& src1, const GpuMat& src2);
//! async version
CV_EXPORTS void bitwise_or(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask, const Stream& stream);
//! calculates per-element bit-wise conjunction of two arrays
CV_EXPORTS void bitwise_and(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask=GpuMat());
//! version without mask
CV_EXPORTS GpuMat operator & (const GpuMat& src1, const GpuMat& src2);
//! async version
CV_EXPORTS void bitwise_and(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask, const Stream& stream);
//! calculates per-element bit-wise "exclusive or" operation
CV_EXPORTS void bitwise_xor(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask=GpuMat());
//! version without mask
CV_EXPORTS GpuMat operator ^ (const GpuMat& src1, const GpuMat& src2);
//! async version
CV_EXPORTS void bitwise_xor(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask, const Stream& stream);
......
......@@ -432,6 +432,40 @@ inline size_t CudaMem::step1() const { return step/elemSize1(); }
inline Size CudaMem::size() const { return Size(cols, rows); }
inline bool CudaMem::empty() const { return data == 0; }
//////////////////////////////////////////////////////////////////////////////
// Arithmetical operations
inline GpuMat operator ~ (const GpuMat& src)
{
GpuMat dst;
bitwise_not(src, dst);
return dst;
}
inline GpuMat operator | (const GpuMat& src1, const GpuMat& src2)
{
GpuMat dst;
bitwise_or(src1, src2, dst);
return dst;
}
inline GpuMat operator & (const GpuMat& src1, const GpuMat& src2)
{
GpuMat dst;
bitwise_and(src1, src2, dst);
return dst;
}
inline GpuMat operator ^ (const GpuMat& src1, const GpuMat& src2)
{
GpuMat dst;
bitwise_xor(src1, src2, dst);
return dst;
}
} /* end of namespace gpu */
......
......@@ -403,14 +403,6 @@ void cv::gpu::bitwise_not(const GpuMat& src, GpuMat& dst, const GpuMat& mask, co
}
cv::gpu::GpuMat cv::gpu::operator ~ (const GpuMat& src)
{
GpuMat dst;
bitwise_not(src, dst);
return dst;
}
//////////////////////////////////////////////////////////////////////////////
// Binary bitwise logical operations
......@@ -582,28 +574,4 @@ void cv::gpu::bitwise_xor(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, c
::bitwiseXorCaller(src1, src2, dst, mask, StreamAccessor::getStream(stream));
}
cv::gpu::GpuMat cv::gpu::operator | (const GpuMat& src1, const GpuMat& src2)
{
GpuMat dst;
bitwise_or(src1, src2, dst);
return dst;
}
cv::gpu::GpuMat cv::gpu::operator & (const GpuMat& src1, const GpuMat& src2)
{
GpuMat dst;
bitwise_and(src1, src2, dst);
return dst;
}
cv::gpu::GpuMat cv::gpu::operator ^ (const GpuMat& src1, const GpuMat& src2)
{
GpuMat dst;
bitwise_xor(src1, src2, dst);
return dst;
}
#endif
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment