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