二维数组和单通道Mat相关问题
我们分别将二维数组第一行的首地址和单通道Mat第一行的首地址赋给指针:
1 int a[2][2] =
2 {
3 {1,2},
4 {3,4}
5 };
6
7 int* p = a[0];
8 cout << p[2] << endl;
结果为3
1 Mat m = (Mat_<int>(2, 2) << 1,2,3,4);
2
3 //获取指向第一行的指针
4 int* ptr = m.ptr<int>(0);
5 cout<<ptr[2]<<endl;
结果为3
说明当指针指向二维数组或则单通道Mat的某一行时,当指针的索引值超出这一行列数最大的下标,则会自动获取下一行的元素
1 int* ptr = m.ptr<int>(0);
2
3 //可以遍历所有元素,不必担心超出最大列
4 for (int i = 0; i < m.total(); i++)
5 {
6 cout << ptr[i] << ",";
7 if (i % m.cols)
8 {
9 cout << endl;
10 }
11 }