pyopencv_umat.hpp 639 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifdef HAVE_OPENCV_CORE
  2. #include "opencv2/core/mat.hpp"
  3. typedef std::vector<Range> vector_Range;
  4. CV_PY_TO_CLASS(UMat);
  5. CV_PY_FROM_CLASS(UMat);
  6. static bool cv_mappable_to(const Ptr<Mat>& src, Ptr<UMat>& dst)
  7. {
  8. //dst.reset(new UMat(src->getUMat(ACCESS_RW)));
  9. dst.reset(new UMat());
  10. src->copyTo(*dst);
  11. return true;
  12. }
  13. static void* cv_UMat_queue()
  14. {
  15. return cv::ocl::Queue::getDefault().ptr();
  16. }
  17. static void* cv_UMat_context()
  18. {
  19. return cv::ocl::Context::getDefault().ptr();
  20. }
  21. static Mat cv_UMat_get(const UMat* _self)
  22. {
  23. Mat m;
  24. m.allocator = &g_numpyAllocator;
  25. _self->copyTo(m);
  26. return m;
  27. }
  28. #endif