opencv中的Mat.ptr

Mat矩阵中数据指针Mat.data是uchar类型指针,CV_8U系列可以通过计算指针位置快速地定位矩阵中的任意元素。

二维单通道元素可以用MAT::at(i,j),i是行号,j是列号

但对于多通道的非uchar类型矩阵来说,以 上方法不适用,可以用Mat::ptr()来获得指行某行元素的指针,在通过行数与通道数计算相应点的指针。

可以用以下函数进行访问

    #include<opencv2/core/core.hpp>
    template<typename ItemType>
    ItemType*  getMatPointPtr(Mat& src,int i,int j,int c=0)
    {
        ItemType *curRow=src.ptr<ItemType>(i);
        return curRow+j*src.channels()+c;
    }    

 

posted @ 2014-07-03 21:21  dupuleng  阅读(2030)  评论(0编辑  收藏  举报