mirror of
https://github.com/opencv/opencv.git
synced 2024-12-02 15:52:30 +08:00
e2499e5b2f
These two typdefs are not compiled when BUILD_opencv_dnn is set to false, however there are other modules that uses these typedef so it may cause build errors. Moving typedef to the python module ensures they are always defined.
39 lines
950 B
C++
39 lines
950 B
C++
#ifdef HAVE_OPENCV_DNN
|
|
typedef dnn::DictValue LayerId;
|
|
typedef std::vector<dnn::MatShape> vector_MatShape;
|
|
typedef std::vector<std::vector<dnn::MatShape> > vector_vector_MatShape;
|
|
|
|
|
|
template<>
|
|
bool pyopencv_to(PyObject *o, dnn::DictValue &dv, const char *name)
|
|
{
|
|
(void)name;
|
|
if (!o || o == Py_None)
|
|
return true; //Current state will be used
|
|
else if (PyLong_Check(o))
|
|
{
|
|
dv = dnn::DictValue((int64)PyLong_AsLongLong(o));
|
|
return true;
|
|
}
|
|
else if (PyFloat_Check(o))
|
|
{
|
|
dv = dnn::DictValue(PyFloat_AS_DOUBLE(o));
|
|
return true;
|
|
}
|
|
else if (PyString_Check(o))
|
|
{
|
|
dv = dnn::DictValue(String(PyString_AsString(o)));
|
|
return true;
|
|
}
|
|
else
|
|
return false;
|
|
}
|
|
|
|
template<>
|
|
bool pyopencv_to(PyObject *o, std::vector<Mat> &blobs, const char *name) //required for Layer::blobs RW
|
|
{
|
|
return pyopencvVecConverter<Mat>::to(o, blobs, ArgInfo(name, false));
|
|
}
|
|
|
|
#endif
|