|
|
|
@ -394,6 +394,15 @@ bool pyopencv_to(PyObject* o, Mat& m, const char* name) |
|
|
|
|
return pyopencv_to(o, m, ArgInfo(name, 0)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
bool pyopencv_to(PyObject *o, Ptr<T>& p, const char *name) |
|
|
|
|
{ |
|
|
|
|
if (!o || o == Py_None) |
|
|
|
|
return true; |
|
|
|
|
p = makePtr<T>(); |
|
|
|
|
return pyopencv_to(o, *p, name); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<> |
|
|
|
|
PyObject* pyopencv_from(const Mat& m) |
|
|
|
|
{ |
|
|
|
@ -417,6 +426,14 @@ PyObject* pyopencv_from(const Matx<_Tp, m, n>& matx) |
|
|
|
|
return pyopencv_from(Mat(matx)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<typename T> |
|
|
|
|
PyObject* pyopencv_from(const cv::Ptr<T>& p) |
|
|
|
|
{ |
|
|
|
|
if (!p) |
|
|
|
|
Py_RETURN_NONE; |
|
|
|
|
return pyopencv_from(*p); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
typedef struct { |
|
|
|
|
PyObject_HEAD |
|
|
|
|
UMat* um; |
|
|
|
@ -1329,23 +1346,6 @@ PyObject* pyopencv_from(const Moments& m) |
|
|
|
|
"nu30", m.nu30, "nu21", m.nu21, "nu12", m.nu12, "nu03", m.nu03); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<typename T> |
|
|
|
|
PyObject* pyopencv_from(const cv::Ptr<T>& p) |
|
|
|
|
{ |
|
|
|
|
if (!p) |
|
|
|
|
Py_RETURN_NONE; |
|
|
|
|
return pyopencv_from(*p); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
bool pyopencv_to(PyObject *o, Ptr<T>& p, const char *name) |
|
|
|
|
{ |
|
|
|
|
if (!o || o == Py_None) |
|
|
|
|
return true; |
|
|
|
|
p = makePtr<T>(); |
|
|
|
|
return pyopencv_to(o, *p, name); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#include "pyopencv_custom_headers.h" |
|
|
|
|
|
|
|
|
|
static void OnMouse(int event, int x, int y, int flags, void* param) |
|
|
|
|