@@ -394,6 +394,15 @@ bool pyopencv_to(PyObject* o, Mat& m, const char* name)
394
394
return pyopencv_to (o, m, ArgInfo (name, 0 ));
395
395
}
396
396
397
+ template <typename T>
398
+ bool pyopencv_to (PyObject *o, Ptr<T>& p, const char *name)
399
+ {
400
+ if (!o || o == Py_None)
401
+ return true ;
402
+ p = makePtr<T>();
403
+ return pyopencv_to (o, *p, name);
404
+ }
405
+
397
406
template <>
398
407
PyObject* pyopencv_from (const Mat& m)
399
408
{
@@ -417,6 +426,14 @@ PyObject* pyopencv_from(const Matx<_Tp, m, n>& matx)
417
426
return pyopencv_from (Mat (matx));
418
427
}
419
428
429
+ template <typename T>
430
+ PyObject* pyopencv_from (const cv::Ptr<T>& p)
431
+ {
432
+ if (!p)
433
+ Py_RETURN_NONE;
434
+ return pyopencv_from (*p);
435
+ }
436
+
420
437
typedef struct {
421
438
PyObject_HEAD
422
439
UMat* um;
@@ -1329,23 +1346,6 @@ PyObject* pyopencv_from(const Moments& m)
1329
1346
" nu30" , m.nu30 , " nu21" , m.nu21 , " nu12" , m.nu12 , " nu03" , m.nu03 );
1330
1347
}
1331
1348
1332
- template <typename T>
1333
- PyObject* pyopencv_from (const cv::Ptr<T>& p)
1334
- {
1335
- if (!p)
1336
- Py_RETURN_NONE;
1337
- return pyopencv_from (*p);
1338
- }
1339
-
1340
- template <typename T>
1341
- bool pyopencv_to (PyObject *o, Ptr<T>& p, const char *name)
1342
- {
1343
- if (!o || o == Py_None)
1344
- return true ;
1345
- p = makePtr<T>();
1346
- return pyopencv_to (o, *p, name);
1347
- }
1348
-
1349
1349
#include " pyopencv_custom_headers.h"
1350
1350
1351
1351
static void OnMouse (int event, int x, int y, int flags, void * param)
0 commit comments