Merge pull request #8654 from paroj:py_vector_ptr

pull/8665/head
Alexander Alekhin 8 years ago
commit 21fff4dfb6
  1. 34
      modules/python/src2/cv2.cpp

@ -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)

Loading…
Cancel
Save