Fix the bug of Mat_<>::opeartor []

`template<typename _Tp> inline const _Tp* Mat_<_Tp>::operator [](int y) const` does not support 3d matrix since it checks rows.

This operator[] shall check size.p[0] instead.
pull/8379/head
hailong-wang 8 years ago committed by GitHub
parent 502aa1f053
commit 207218e920
  1. 4
      modules/core/include/opencv2/core/mat.inl.hpp

@ -1634,14 +1634,14 @@ Mat_<_Tp> Mat_<_Tp>::operator()(const std::vector<Range>& ranges) const
template<typename _Tp> inline
_Tp* Mat_<_Tp>::operator [](int y)
{
CV_DbgAssert( 0 <= y && y < rows );
CV_DbgAssert( 0 <= y && y < size.p[0] );
return (_Tp*)(data + y*step.p[0]);
}
template<typename _Tp> inline
const _Tp* Mat_<_Tp>::operator [](int y) const
{
CV_DbgAssert( 0 <= y && y < rows );
CV_DbgAssert( 0 <= y && y < size.p[0] );
return (const _Tp*)(data + y*step.p[0]);
}

Loading…
Cancel
Save