From: Andrey Kamaev Date: Tue, 24 May 2011 16:14:23 +0000 (+0000) Subject: Implemented 4 missing Mat::ptr methods X-Git-Tag: accepted/2.0/20130307.220821~3050 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0d2c98b5e1f32f49992fc2c67f07921503e8e039;p=profile%2Fivi%2Fopencv.git Implemented 4 missing Mat::ptr methods --- diff --git a/modules/core/include/opencv2/core/mat.hpp b/modules/core/include/opencv2/core/mat.hpp index 885fed5..624f0d4 100644 --- a/modules/core/include/opencv2/core/mat.hpp +++ b/modules/core/include/opencv2/core/mat.hpp @@ -466,6 +466,22 @@ inline const uchar* Mat::ptr(int i0, int i1) const return data + i0*step.p[0] + i1*step.p[1]; } +template inline _Tp* Mat::ptr(int i0, int i1) +{ + CV_DbgAssert( dims >= 2 && data && + (unsigned)i0 < (unsigned)size.p[0] && + (unsigned)i1 < (unsigned)size.p[1] ); + return (_Tp*)(data + i0*step.p[0] + i1*step.p[1]); +} + +template inline const _Tp* Mat::ptr(int i0, int i1) const +{ + CV_DbgAssert( dims >= 2 && data && + (unsigned)i0 < (unsigned)size.p[0] && + (unsigned)i1 < (unsigned)size.p[1] ); + return (const _Tp*)(data + i0*step.p[0] + i1*step.p[1]); +} + inline uchar* Mat::ptr(int i0, int i1, int i2) { CV_DbgAssert( dims >= 3 && data && @@ -484,6 +500,24 @@ inline const uchar* Mat::ptr(int i0, int i1, int i2) const return data + i0*step.p[0] + i1*step.p[1] + i2*step.p[2]; } +template inline _Tp* Mat::ptr(int i0, int i1, int i2) +{ + CV_DbgAssert( dims >= 3 && data && + (unsigned)i0 < (unsigned)size.p[0] && + (unsigned)i1 < (unsigned)size.p[1] && + (unsigned)i2 < (unsigned)size.p[2] ); + return (_Tp*)(data + i0*step.p[0] + i1*step.p[1] + i2*step.p[2]); +} + +template inline const _Tp* Mat::ptr(int i0, int i1, int i2) const +{ + CV_DbgAssert( dims >= 3 && data && + (unsigned)i0 < (unsigned)size.p[0] && + (unsigned)i1 < (unsigned)size.p[1] && + (unsigned)i2 < (unsigned)size.p[2] ); + return (const _Tp*)(data + i0*step.p[0] + i1*step.p[1] + i2*step.p[2]); +} + inline uchar* Mat::ptr(const int* idx) { int i, d = dims;