1. clone() 创建一个图像的深拷贝
Mat image;
image = cv::imread("boldt.jpg");
Mat cloneimage = image.clone();
2. create()函数
result.create(image.rows,image.cols,image.type());
create函数创建的图像的内存是连续的,不会对图像的行进行填补,分配的内存大小为total()*elemSize()
3. total()函数
返回Mat矩阵的像素个数
4. elemSize()函数
返回Mat矩阵每个像素的字节数
5. isContinuous()
判断Mat所表示的那副图像是否连续,即是否进行了行填补;如果返回为真的话,没有进行行填补,反之就进行了行填补
6. data成员变量
data是一个unsigned char的指针,代表Mat内存的首地址
uchar *data = image.data
;
7.step成员变量
step代表Mat矩阵的行款,包括填补像素
8.setTo函数
设置矩阵的值
image.row(0).setTo(cv::Scalar(0))或 image.row(0).setTo(cv::Scalar(0,0,0));
9.depth
矩阵中元素的一个通道的数据类型,这个值和type是相关的。例如 type为 CV_16SC2,一个2通道的16位的有符号整数。那么,depth则是CV_16S。depth也是一系列的预定义值,
将type的预定义值去掉通道信息就是depth值:
CV_8U CV_8S CV_16U CV_16S CV_32S CV_32F CV_64F