OpenCV图像处理---Mat类

本文介绍了OpenCV中的核心类Mat,包括其特点、图像信息、创建方法、空间分配、影像复制、改变影像类型、操作像素以及OpenCV的基本结构如Point、Size和Rect。Mat是用于存储图像和数据的基础容器,具有自动内存管理特性,支持多种图像类型和通道数。文章还提到了uchar、ushort和Vec等缩写及其用途。

图片是以数组的方式存在设备中的,数组中的值代表某个像素点的像素值,它的格式和范围受 颜色空间 和 数据类型 的影响。

Mat类

基础图像容器,代表的是矩阵(Matrix)前三个字母,它其实就是一个可以保存图片(一些数组矩阵)或者数组的容器,在opencv开发中我们经常需要使用它存储显示并传递一些数据,Mat类有相关的成员变量和成员函数方便使用。

特点:1.不必为它手动开辟空间 2.不必在不需要的时候立即释放空间 3.Mat由两部分组成,矩阵头(矩阵尺寸,存储方法,存储地址等信息)和一个指针(指向存储所有像素值的矩阵)。

图像信息

Mat类最基本的有长、宽、像素类型(矩阵类型)、像素深度(矩阵元素的深度)、通道数等信息。

成员变量 意义
rows 图像的行数,也就是图像的高度 height
cols 图像的列数,也就是图像的宽度 width

Opencv通道数:int Mat::channels() const
返回图像的通道数:灰度图为1,彩色图为3。

OpenCV像素深度:int Mat::depth() const
返回矩阵元素深度的标识符(每个单独通道的类型)
矩阵类型包含以下值:
- CV_8U - 8位无符号整数(0…255)
- CV_8S - 8位有符号整数(-128…127)
- CV_16U - 16位无符号整数(0…65535)
- CV_16S - 16位有符号整数(-32768…32767)
- CV_32S - 32位有符号整数(-2147483648…2147483647)
- CV_32F - 32位浮点数(-FLT_MAX…FLT_MAX,INF,NAN)
- CV_64F - 64位浮点数(-DBL_MAX…DBL_MAX,INF,NAN)

OpenCV像素类型:int Mat::type() const
返回矩阵元素类型
类型与深度主要差别在于类型有通道数信息,比如
CV_8UC3 -代表8位不带符号的3通道阵列。

  • CV_8U -位元深度为8,无负号,通道数1
  • CV_8S -位元深度为8,有负号,通道数1
  • CV_16U -位元深度为16,无负号,通道数1
  • CV_32F -浮点数资料,通道数1
  • CV_8U
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值