mirror of
https://github.com/opencv/opencv.git
synced 2025-06-07 17:44:04 +08:00
Merge pull request #20053 from berak:core_mat_ptr_vec
This commit is contained in:
commit
dde029f105
@ -898,6 +898,33 @@ const _Tp* Mat::ptr(const int* idx) const
|
|||||||
return (const _Tp*)p;
|
return (const _Tp*)p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<int n> inline
|
||||||
|
uchar* Mat::ptr(const Vec<int, n>& idx)
|
||||||
|
{
|
||||||
|
return Mat::ptr(idx.val);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<int n> inline
|
||||||
|
const uchar* Mat::ptr(const Vec<int, n>& idx) const
|
||||||
|
{
|
||||||
|
return Mat::ptr(idx.val);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename _Tp, int n> inline
|
||||||
|
_Tp* Mat::ptr(const Vec<int, n>& idx)
|
||||||
|
{
|
||||||
|
CV_DbgAssert( elemSize() == sizeof(_Tp) );
|
||||||
|
return Mat::ptr<_Tp>(idx.val);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename _Tp, int n> inline
|
||||||
|
const _Tp* Mat::ptr(const Vec<int, n>& idx) const
|
||||||
|
{
|
||||||
|
CV_DbgAssert( elemSize() == sizeof(_Tp) );
|
||||||
|
return Mat::ptr<_Tp>(idx.val);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<typename _Tp> inline
|
template<typename _Tp> inline
|
||||||
_Tp& Mat::at(int i0, int i1)
|
_Tp& Mat::at(int i0, int i1)
|
||||||
{
|
{
|
||||||
|
@ -2365,4 +2365,20 @@ TEST(Mat, regression_18473)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEST(Mat, ptrVecni_20044)
|
||||||
|
{
|
||||||
|
Mat_<int> m(3,4); m << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;
|
||||||
|
Vec2i idx(1,1);
|
||||||
|
|
||||||
|
uchar *u = m.ptr(idx);
|
||||||
|
EXPECT_EQ(int(6), *(int*)(u));
|
||||||
|
const uchar *cu = m.ptr(idx);
|
||||||
|
EXPECT_EQ(int(6), *(int*)(cu));
|
||||||
|
|
||||||
|
int *i = m.ptr<int>(idx);
|
||||||
|
EXPECT_EQ(int(6), *(i));
|
||||||
|
const int *ci = m.ptr<int>(idx);
|
||||||
|
EXPECT_EQ(int(6), *(ci));
|
||||||
|
}
|
||||||
|
|
||||||
}} // namespace
|
}} // namespace
|
||||||
|
Loading…
Reference in New Issue
Block a user