个人资料,仅供学习使用
学习课程:OpenCV4 C++ 快速入门视频30讲——贾志刚
03 图像对象的创建与赋值
opencv知识点:
- Mat类
- 图像复制的3种方法
- 图像属性的获取
- Mat对象的创建
- Mat对象的赋值
本课解决的问题:
- Mat是什么?
- Mat对象克隆/拷贝与赋值的区别?
- 如何获取图像的属性?
- 如何创建空白图像?
- 如何对Mat对象赋值?
1.Mat类及其实例
Mat简述
什么是Mat呢,Mat其实就是matrix(矩阵)的缩写
我们看到的图像,就是以数字矩阵的形式存储在计算机中,在opencv中,我们用Mat类的对象存储图像。
在opencv中,Mat类分为两个部分
- 矩阵头
- 矩阵数据
矩阵头
图像有很多属性。如:大小,宽和高,数据类型,通道数。这些数据存储在矩阵头中
矩阵数据
图像也有很多的数据,图像的数据部分是所有像素的值的一个集合,存储在矩阵数据中

Mat对象复制
看上图,我们发现Mat对象复制是有三种方法的
- 克隆
- 拷贝
- 赋值
这里说一下它们的区别
赋值:相当于浅复制,只复制了矩阵头,指向的是同一个数据块。
克隆/拷贝:相当于深复制,还会复制相应的数据块
//1.赋值——浅复制
Mat src = imread("……");
Mat m3 = src;
//2.克隆——深复制
Mat src = imread("……");
Mat m1 = src.clone();
//3.拷贝——深复制
Mat src = imread("……");
Mat m2;
src.copyTo(m2);
Mat对象属性
Mat对象存储了一些属性,如:列数,行数,通道数(维度),位深度,图像类型
怎么获取它们呢?
Mat image= imread("……");
//很简单,通过这些操作即可
image.cols;
image.rows;
image.channels();
image.depth

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



