#ifdef HAVE_OPENCV_DNNtypedefdnn::DictValueLayerId;typedefstd::vector<dnn::MatShape>vector_MatShape;typedefstd::vector<std::vector<dnn::MatShape>>vector_vector_MatShape;typedefstd::vector<size_t>vector_size_t;typedefstd::vector<std::vector<Mat>>vector_vector_Mat;template<>boolpyopencv_to(PyObject*o,dnn::DictValue&dv,constchar*name){(void)name;if(!o||o==Py_None)returntrue;//Current state will be usedelseif(PyLong_Check(o)){dv=dnn::DictValue((int64)PyLong_AsLongLong(o));returntrue;}elseif(PyFloat_Check(o)){dv=dnn::DictValue(PyFloat_AS_DOUBLE(o));returntrue;}elseif(PyString_Check(o)){dv=dnn::DictValue(String(PyString_AsString(o)));returntrue;}elsereturnfalse;}template<>boolpyopencv_to(PyObject*o,std::vector<Mat>&blobs,constchar*name)//required for Layer::blobs RW{returnpyopencvVecConverter<Mat>::to(o,blobs,ArgInfo(name,false));}#endif