OPenCV 的mat类

本文介绍了OpenCV的Mat类,它解决了C接口中的内存管理问题,提供了更方便的图像处理体验。Mat类由矩阵头和指向像素值的指针组成,通过引用计数避免了大图像复制的开销。文章详细讲解了Mat对象的拷贝构造和赋值运算符,以及创建Mat对象的两种方法:使用构造函数和转换iplImg*格式。
摘要由CSDN通过智能技术生成

一、

2001年以来,OPenCV的函数库是基于C接口构建的,因此在最初的几个版本的OpenCV中,一般使用名为IplImage的C语言结构体在内存中存储图像。而C++带来了类的概念。OpenCV2在2.0版本中引入了一个新的C++接口,利用自动内存管理,不需要再纠结于内存管理的问题。使用Mat类数据结构作为主打后,OpenCV变得越来越像Matlab那样,上手方便。有些函数名称都和matlab一样,如imread、imshow、imwrite等。


关于Mat类,首先要知道的是:

(1)不必再手动为其开辟空间。

(2)不必再在不需要时立即将空间释放。


Mat是一个类,有两个数据部分组成:矩阵头(包含矩阵尺寸、存储方法、存储地址等信息)和一个指向存储所有像素值矩阵的指针(根据所选存储方法不同,矩阵可以是不同的维数)。矩阵头的尺寸是常数值,但矩阵本身的尺寸会依图像的不同而不同,通常比矩阵头的尺寸大数个数量级。因此,当在程序中传递图像并创建副本时,大的开销是由矩阵造成的,而不是信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值