【VC++、OpenCV3.4】Mat对象

本文详细介绍了OpenCV3.4中的Mat对象,包括Mat与IplImage的区别,Mat的构造函数和常用方法,如何使用Mat进行部分复制和完全复制,以及创建Mat对象的几种方式。Mat对象是自动分配内存的,使用C++接口避免了内存泄漏问题,通过clone和copyTo实现数据完全复制。
摘要由CSDN通过智能技术生成

这节记录下图像加载或者读取后的内存对象Mat的相关知识。

包括:Mat对象和IplImage对象,Mat对象的使用,Mat定义数组。

1、Mat对象和IplImage对象:

IplImage对象:是从2001年OpenCV发布就一直存在的,是C语言风格的数据结构,需要开发者自己分配和管理内存,对大的程序来说,使用IplImage对象容易造成内存泄漏的问题。

Mat对象:OpenCV2.0以后引入的图像数据结构,自动分配内存,不存在内存泄漏的问题,是面向对象的数据结构。分成了两个部分,头部与数据部分

上一节中说道:

还是先看Mat的存储形式。Mat和Matlab里的数组格式有点像,但一般是二维向量,如果是灰度图,一般存放<uchar>类型;如果是RGB彩色图,存放<Vec3b>类型。

单通道灰度图数据存放格式:

多通道的图像中,每列并列存放通道数量的子列,如RGB三通道彩色图:

注意通道的顺序反转了:BGR。通常情况内存足够大的话图像的每一行是连续存放的,也就是在内存上图像的所有数据存放成一行,这中情况在访问时可以提供很

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值