diff --git a/cv_bridge/src/module_opencv.cpp b/cv_bridge/src/module_opencv.cpp index ccf1d14e1..cbfc7ebe5 100644 --- a/cv_bridge/src/module_opencv.cpp +++ b/cv_bridge/src/module_opencv.cpp @@ -107,7 +107,11 @@ class NumpyAllocator : public MatAllocator return u; } +#if CV_MAJOR_VERSION > 3 UMatData* allocate(int dims0, const int* sizes, int type, void* data, size_t* step, AccessFlag flags, UMatUsageFlags usageFlags) const CV_OVERRIDE +#else + UMatData* allocate(int dims0, const int* sizes, int type, void* data, size_t* step, int flags, UMatUsageFlags usageFlags) const +#endif { if( data != 0 ) { @@ -130,18 +134,30 @@ class NumpyAllocator : public MatAllocator _sizes[i] = sizes[i]; if( cn > 1 ) _sizes[dims++] = cn; +#if CV_MAJOR_VERSION > 3 PyObject* o = PyArray_SimpleNew(dims, _sizes.data(), typenum); +#else + PyObject* o = PyArray_SimpleNew(dims, _sizes, typenum); +#endif if(!o) CV_Error_(Error::StsError, ("The numpy array of typenum=%d, ndims=%d can not be created", typenum, dims)); return allocate(o, dims0, sizes, type, step); } +#if CV_MAJOR_VERSION > 3 bool allocate(UMatData* u, AccessFlag accessFlags, UMatUsageFlags usageFlags) const CV_OVERRIDE +#else + bool allocate(UMatData* u, int accessFlags, UMatUsageFlags usageFlags) const +#endif { return stdAllocator->allocate(u, accessFlags, usageFlags); } +#if CV_MAJOR_VERSION > 3 void deallocate(UMatData* u) const CV_OVERRIDE +#else + void deallocate(UMatData* u) const +#endif { if(!u) return;