openCV中Mat对象的使用

openCV中Mat对象的使用

Mat简介

OpenCv提供了Mat类用来存储矩阵类型数据,包括向量、矩阵、图像等数据。Mat类分为分为矩阵头和指向存储数据的矩阵指针两部分。矩阵头包含矩阵的尺寸、存储方法、地址和引用次数。矩阵头是一个常数,绝大数情况下,矩阵头的大小远小于矩阵数据量的大小。

Mat对象使用

部分复制一般只会复制Mat对象的头和指针部分,不会复制数据部分。

Mat A=imread(imageFilePath);
Mat B(A)

完全复制:如果想把Mat对象的头部和数据部分一起复制,可以通过如下两个函数实现:

Mat F =A.clone();
Mat G;
A.copyTo(G);

Mat对象使用的四个要点
输出图像的内存是自动分配的
使用OpenCV的c++接口,不需要考虑内存分配的问题
赋值操作和拷贝构造函数只会复制头部分
使用clone和copyTo两个函数实现完全复制

Mat对象创建

cv::Mat::Mat()

Mat M(2,2,CV_8UC3,Scalar(0,0,255));

其中前两个参数分别表示行(row)跟列(column)第三个CV_ 8UC3中的8表示每个通道占8位、U表示无符号、C表示Char类型、3表示通道数目是3,第四个参数是向量表示初始化每个像素值是多少,向量长度对应通道数目一致

创建多维数组

使用create函数

Mat M;
M.create(4,3,CV_8UC2);
M=Scalar(123,123);

Mat常用的属性和方法

cols	//矩阵的列数
rows	//矩阵的行数
steps	//以字节为单位的有效宽度
dims	//矩阵的维度
成员方法	
elemSize()	//每个元素的字节数
total()	//矩阵中元素的个数
channels()	//矩阵的通道数
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值