我们分别将二维数组第一行的首地址和单通道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 }