diff --git a/modules/core/include/opencv2/core/mat.hpp b/modules/core/include/opencv2/core/mat.hpp index e4f3f0b2e1..2c91a996fd 100644 --- a/modules/core/include/opencv2/core/mat.hpp +++ b/modules/core/include/opencv2/core/mat.hpp @@ -2185,6 +2185,8 @@ public: void create(Size _size); //! equivalent to Mat::create(_ndims, _sizes, DatType<_Tp>::type) void create(int _ndims, const int* _sizes); + //! equivalent to Mat::release() + void release(); //! cross-product Mat_ cross(const Mat_& m) const; //! data type conversion @@ -2676,11 +2678,11 @@ public: /*! @param [out] m - output matrix; if it does not have a proper size or type before the operation, it is reallocated - @param [in] rtype – desired output matrix type or, rather, the depth since the number of channels + @param [in] rtype - desired output matrix type or, rather, the depth since the number of channels are the same as the input has; if rtype is negative, the output matrix will have the same type as the input. - @param [in] alpha – optional scale factor - @param [in] beta – optional delta added to the scaled values + @param [in] alpha - optional scale factor + @param [in] beta - optional delta added to the scaled values */ void convertTo( Mat& m, int rtype, double alpha=1, double beta=0 ) const; diff --git a/modules/core/include/opencv2/core/mat.inl.hpp b/modules/core/include/opencv2/core/mat.inl.hpp index ce8f6e9627..82a892dce5 100644 --- a/modules/core/include/opencv2/core/mat.inl.hpp +++ b/modules/core/include/opencv2/core/mat.inl.hpp @@ -1625,6 +1625,15 @@ void Mat_<_Tp>::create(int _dims, const int* _sz) Mat::create(_dims, _sz, DataType<_Tp>::type); } +template inline +void Mat_<_Tp>::release() +{ + Mat::release(); +#ifdef _DEBUG + flags = (flags & ~CV_MAT_TYPE_MASK) | DataType<_Tp>::type; +#endif +} + template inline Mat_<_Tp> Mat_<_Tp>::cross(const Mat_& m) const {