parent
2bbe31a8f6
commit
669ee0415a
4 changed files with 97 additions and 281 deletions
@ -0,0 +1,37 @@ |
||||
#ifdef HAVE_OPENCV_CORE |
||||
|
||||
#include "opencv2/core/mat.hpp" |
||||
|
||||
typedef std::vector<Range> vector_Range; |
||||
|
||||
CV_PY_TO_CLASS(UMat); |
||||
CV_PY_FROM_CLASS(UMat); |
||||
CV_PY_TO_ENUM(UMatUsageFlags); |
||||
|
||||
static bool cv_mappable_to(const Ptr<Mat>& src, Ptr<UMat>& dst) |
||||
{ |
||||
//dst.reset(new UMat(src->getUMat(ACCESS_RW)));
|
||||
dst.reset(new UMat()); |
||||
src->copyTo(*dst); |
||||
return true; |
||||
} |
||||
|
||||
static void* cv_UMat_queue() |
||||
{ |
||||
return cv::ocl::Queue::getDefault().ptr(); |
||||
} |
||||
|
||||
static void* cv_UMat_context() |
||||
{ |
||||
return cv::ocl::Context::getDefault().ptr(); |
||||
} |
||||
|
||||
static Mat cv_UMat_get(const UMat* _self) |
||||
{ |
||||
Mat m; |
||||
m.allocator = &g_numpyAllocator; |
||||
_self->copyTo(m); |
||||
return m; |
||||
} |
||||
|
||||
#endif |
@ -0,0 +1,59 @@ |
||||
#error This is a shadow header file, which is not intended for processing by any compiler. \ |
||||
Only bindings parser should handle this file. |
||||
|
||||
namespace cv |
||||
{ |
||||
|
||||
class CV_EXPORTS_W UMat |
||||
{ |
||||
public: |
||||
//! default constructor
|
||||
CV_WRAP UMat(UMatUsageFlags usageFlags = USAGE_DEFAULT); |
||||
//! constructs 2D matrix of the specified size and type
|
||||
// (_type is CV_8UC1, CV_64FC3, CV_32SC(12) etc.)
|
||||
CV_WRAP UMat(int rows, int cols, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); |
||||
CV_WRAP UMat(Size size, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); |
||||
//! constucts 2D matrix and fills it with the specified value _s.
|
||||
CV_WRAP UMat(int rows, int cols, int type, const Scalar& s, UMatUsageFlags usageFlags = USAGE_DEFAULT); |
||||
CV_WRAP UMat(Size size, int type, const Scalar& s, UMatUsageFlags usageFlags = USAGE_DEFAULT); |
||||
|
||||
//! Mat is mappable to UMat
|
||||
CV_WRAP_MAPPABLE(Ptr<Mat>); |
||||
|
||||
//! returns the OpenCL queue used by OpenCV UMat
|
||||
CV_WRAP_PHANTOM(static void* queue()); |
||||
|
||||
//! returns the OpenCL context used by OpenCV UMat
|
||||
CV_WRAP_PHANTOM(static void* context()); |
||||
|
||||
//! copy constructor
|
||||
CV_WRAP UMat(const UMat& m); |
||||
|
||||
//! creates a matrix header for a part of the bigger matrix
|
||||
CV_WRAP UMat(const UMat& m, const Range& rowRange, const Range& colRange = Range::all()); |
||||
CV_WRAP UMat(const UMat& m, const Rect& roi); |
||||
CV_WRAP UMat(const UMat& m, const std::vector<Range>& ranges); |
||||
|
||||
//CV_WRAP_AS(get) Mat getMat(int flags CV_WRAP_DEFAULT(ACCESS_RW)) const;
|
||||
//! returns a numpy matrix
|
||||
CV_WRAP_PHANTOM(Mat get() const); |
||||
|
||||
//! returns true iff the matrix data is continuous
|
||||
// (i.e. when there are no gaps between successive rows).
|
||||
// similar to CV_IS_MAT_CONT(cvmat->type)
|
||||
CV_WRAP bool isContinuous() const; |
||||
|
||||
//! returns true if the matrix is a submatrix of another matrix
|
||||
CV_WRAP bool isSubmatrix() const; |
||||
|
||||
/*! Returns the OpenCL buffer handle on which UMat operates on.
|
||||
The UMat instance should be kept alive during the use of the handle to prevent the buffer to be |
||||
returned to the OpenCV buffer pool. |
||||
*/ |
||||
CV_WRAP void* handle(int accessFlags) const; |
||||
|
||||
// offset of the submatrix (or 0)
|
||||
CV_PROP_RW size_t offset; |
||||
}; |
||||
|
||||
} // namespace cv
|
Loading…
Reference in new issue