OpenCV中Mat矩阵data数据的存储方式和二维数组不一致,二维数组按照行优先的顺序依次存储,而Mat中还有一个标示行步进的变量Step。使用Mat.ptr<DataTyte>(row) 行指针的方式定位到每一行,可快速遍历矩阵。例程如下:
std::cout << "The inverse matrix of K is:" << std::endl;
for(int i=;i<;i++)
{
float* data = mInvK.ptr<float>(i);// mInvK.ptr 对应行指针
for (int j=;j<;j++)
{
std::cout << *data++ << "\t";
}
std::cout << std::endl;
}
其实只要显示Mat矩阵data数据的话,不需要通过遍历的方式,以上只为说明遍历方法,对元素操作只有输出打印。显示Mat M矩阵,可以直接 std::cout << M << std::endl