提交 ca599eee 编写于 作者: W Wangyida

python modification for Point3D

上级 dfec9969
...@@ -91,6 +91,7 @@ typedef std::vector<float> vector_float; ...@@ -91,6 +91,7 @@ typedef std::vector<float> vector_float;
typedef std::vector<double> vector_double; typedef std::vector<double> vector_double;
typedef std::vector<Point> vector_Point; typedef std::vector<Point> vector_Point;
typedef std::vector<Point2f> vector_Point2f; typedef std::vector<Point2f> vector_Point2f;
typedef std::vector<Point3f> vector_Point3f;
typedef std::vector<Vec2f> vector_Vec2f; typedef std::vector<Vec2f> vector_Vec2f;
typedef std::vector<Vec3f> vector_Vec3f; typedef std::vector<Vec3f> vector_Vec3f;
typedef std::vector<Vec4f> vector_Vec4f; typedef std::vector<Vec4f> vector_Vec4f;
...@@ -717,6 +718,23 @@ bool pyopencv_to(PyObject* obj, Point2d& p, const char* name) ...@@ -717,6 +718,23 @@ bool pyopencv_to(PyObject* obj, Point2d& p, const char* name)
return PyArg_ParseTuple(obj, "dd", &p.x, &p.y) > 0; return PyArg_ParseTuple(obj, "dd", &p.x, &p.y) > 0;
} }
template<>
bool pyopencv_to(PyObject* obj, Point3f& p, const char* name)
{
(void)name;
if(!obj || obj == Py_None)
return true;
return PyArg_ParseTuple(obj, "fff", &p.x, &p.y, &p.z) > 0;
}
template<>
bool pyopencv_to(PyObject* obj, Point3d& p, const char* name)
{
(void)name;
if(!obj || obj == Py_None)
return true;
return PyArg_ParseTuple(obj, "ddd", &p.x, &p.y, &p.z) > 0;
}
template<> template<>
PyObject* pyopencv_from(const Point& p) PyObject* pyopencv_from(const Point& p)
...@@ -730,6 +748,12 @@ PyObject* pyopencv_from(const Point2f& p) ...@@ -730,6 +748,12 @@ PyObject* pyopencv_from(const Point2f& p)
return Py_BuildValue("(dd)", p.x, p.y); return Py_BuildValue("(dd)", p.x, p.y);
} }
template<>
PyObject* pyopencv_from(const Point3f& p)
{
return Py_BuildValue("(ddd)", p.x, p.y, p.z);
}
template<> template<>
bool pyopencv_to(PyObject* obj, Vec3d& v, const char* name) bool pyopencv_to(PyObject* obj, Vec3d& v, const char* name)
{ {
...@@ -757,6 +781,12 @@ PyObject* pyopencv_from(const Point2d& p) ...@@ -757,6 +781,12 @@ PyObject* pyopencv_from(const Point2d& p)
return Py_BuildValue("(dd)", p.x, p.y); return Py_BuildValue("(dd)", p.x, p.y);
} }
template<>
PyObject* pyopencv_from(const Point3d& p)
{
return Py_BuildValue("(ddd)", p.x, p.y, p.y);
}
template<typename _Tp> struct pyopencvVecConverter template<typename _Tp> struct pyopencvVecConverter
{ {
static bool to(PyObject* obj, std::vector<_Tp>& value, const ArgInfo info) static bool to(PyObject* obj, std::vector<_Tp>& value, const ArgInfo info)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册