OpenCV操作2(Mat类的创建和打印)

本文详细介绍了OpenCV中Mat类的特性,包括自动内存管理、矩阵头和数据指针。讲解了Mat类的多种创建方法,如构造函数、Mat::create、Matlab风格的初始化函数(Mat::eye、Mat::ones、Mat::zeros)以及使用逗号分隔的初始化方式。此外,还提到了Mat的打印方法和如何格式化输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenCV Mat类

Mat 类的特点

  • 图像的内存分配和释放由Mat类自动管理
  • Mat类由两部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和指向存储所有像素值的矩阵的指针

Mat的创建

1.使用Mat构造函数

Mat常用的构造函数有以下几种

1、Mat::Mat()
无参数构造方法;
//Mat A;
2、Mat::Mat(int rows, int cols, int type)
创建行数为 rows,列数为 col,类型为 type 的图像;
//Mat A(10, 10, 8UC3);
3、Mat::Mat(Size size, int type)
创建大小为 size,类型为 type 的图像;
//int size[3] = {2, 2, 2};
//Mat A(size, CV_8UC3);
4、Mat::Mat(int rows, int cols, int type, const Scalar& s)
创建行数为 rows,列数为 col,类型为 type 的图像,并将所有元素初始化为值 s;
//Mat A(7,7,CV_32FC2,Scalar(1,3));
//表示创建一个2通道,且每个通道的值都为(1,3),深度为32,7行7列的图像矩阵。
5、Mat::Mat(Size size, int type, const Scalar& s)
创建大小为 size,类型为 type 的图像,并将所有元素初始化为值 s;
//Mat A(size, 8UC3, Scalar(1,3));
6、Mat::Mat(const Mat& m)
将m赋值给新创建的对象,此处不会对图像数据进行复制,m和新对象共用图像数据,属于浅拷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值