added an ability to make push_back to the empty matrix

pull/13383/head
Maria Dimashova 14 years ago
parent 3a1beb1c01
commit 0d7a37c1e7
  1. 7
      modules/core/include/opencv2/core/mat.hpp
  2. 5
      modules/core/src/matrix.cpp

@ -675,7 +675,12 @@ template<typename _Tp, int m, int n> inline Mat::operator Matx<_Tp, m, n>() cons
template<typename _Tp> inline void Mat::push_back(const _Tp& elem)
{
CV_Assert(DataType<_Tp>::type == type() && cols == 1
if( !data )
{
*this = Mat(1, 1, DataType<_Tp>::type, (void*)&elem).clone();
return;
}
CV_Assert(DataType<_Tp>::type == type() && cols == 1
/* && dims == 2 (cols == 1 implies dims == 2) */);
uchar* tmp = dataend + step[0];
if( !isSubmatrix() && isContinuous() && tmp <= datalimit )

@ -585,6 +585,11 @@ void Mat::push_back(const Mat& elems)
push_back(tmp);
return;
}
if( !data )
{
*this = elems.clone();
return;
}
size.p[0] = elems.size.p[0];
bool eq = size == elems.size;

Loading…
Cancel
Save