OpenCV快速遍历矩阵元素方法

  OpenCV中Mat矩阵data数据的存储方式和二维数组不一致,二维数组按照行优先的顺序依次存储,而Mat中还有一个标示行步进的变量Step。使用Mat.ptr<DataTyte>(row) 行指针的方式定位到每一行,可快速遍历矩阵。例程如下:

 1             std::cout << "The inverse matrix of K is:" << std::endl;
 2             for(int i=0;i<3;i++)
 3             {
 4                 float* data = mInvK.ptr<float>(i);// mInvK.ptr 对应行指针
 5                 for (int j=0;j<3;j++)
 6                 {
 7                     std::cout  << *data++ << "\t";
 8                 }
 9                 std::cout << std::endl;
10             }

  其实只要显示Mat矩阵data数据的话,不需要通过遍历的方式,以上只为说明遍历方法,对元素操作只有输出打印。显示Mat M矩阵,可以直接 std::cout << M << std::endl

posted @ 2014-09-06 08:48  Eastern Sunrise  阅读(2304)  评论(0编辑  收藏  举报