cv::Mat为OpenCV2和OpenCV3中最重要的类,可以毫不夸张得说,掌握了cv::Mat的操作,就掌握了OpenCV大半,这里将详细的介绍下cv::Mat类的成员函数及其使用。
    1、clone()

    1. m1 = m0.clone(); //将m0完全拷贝到m1中,同时拷贝m0中的所有数据,且拷贝的矩阵是连续的。

    2、copyTo()

    1. 1. m0.copyTo(m1); // 将m0中的内容拷贝到m1中,如果有必要重新分配m1(等价于m1 = m0.clone())。
    2. 2. m0.copyTo(m1, mask); //将m0中,mask所指示的的数据拷贝到m1中。

    3、convertTo()

    1. m0.convertTo(m1, type, scale, offset); //将m0中的元素转换成type类(CV_32F等),作scale尺度的缩放,offset偏移,写入m1中。

    4、setTo()

    1. m0.setTo(smask); //将m0中所有的元素的值设为s;如果使用mask,则只设定mask中的非零元素。

    5、reshape()

    1. m0.reshape(chan, rows); //改变二维矩阵的的实际形状,不进行数据拷贝;若chan或rows为0,则表示不作改变。

    6、push_back()

    1. 1. m0.push_back(s); //对mx1矩阵进行扩展,并在末尾插入单一值s。
    2. 2. m0.push_back(m1); //对mxn矩阵作k行扩展,并将m1拷贝到这些行中;m1的大小为kxn。

    7、pop_back()

    1. m0.pop_back(n); //从m0尾部移除n行,默认情况下n为1。

    8、locateROI()

    1. m0.locateROI(size, offset); //将m0的大小重写为size,如果m0重写后变成更大的矩阵,则起始点为cv::Pointoffset点。

    9、adjustROI()

    1. m0.adjustROI(t, b, l, r); //在m0的上下左右分别添加t、b、l、r个像素。

    10、total()

    1. m0.total(); //计算所有数组元素的个数,不考虑通道。

    11、isContinuous()

    1. m0.isContinuous(); //如果m0所有的行在内存空间中打包时都没有间隙,则返回true。

    12、elementSize()

    1. m0.elementSize(); //返回矩阵m0中每个元素的字节大小(如3通道float型的矩阵则返回12)。

    13、elementSize1()

    1. m0.elementSize1(); //返回矩阵m0中每个次元素的字节大小(如3通道float型的矩阵则返回4)。

    14、type()

    1. m0.type(); //返回m0中元素的有效类型标识符(如CV_32FC3)。

    15、depth()

    1. m0.depth(); //返回m0中单个通道中元素的有效类型标识符(如CV_32F)。

    16、channels()

    1. m0.channels(); //返回m0中元素的通道数目。

    17、size()

    1. m0.size(); //以cv::Size对象的形式返回m0的大小。

    18、empty()

    1. m0.empty(); //如果数组中没有元素(如m0.total == 0或m0.data == NULL)则返回true。