1. Mat数据类型
Mat定义
是一个类,由两个数据部分构成,矩阵头(包含矩阵尺寸,存储方法,存储地址等等)和一个指向存储所有像素值的矩阵的指针
成员变量
int cv::Mat::cols; //返回矩阵的列数
int cv::Mat::rows // 返回矩阵行数
uchar* cv::Mat::data // 指向矩阵的数据单元的指针
int cv::Mat::dims // 返回矩阵维度,该维度≥2
MatSize cv::Mat::size // 返回矩阵大小
成员函数
获取图片高度:mat_name.cols
获取图片宽度:mat_name.rows
获取图像位深度,(即矩阵元素的存储方式,存储每个像素所用的位数):
mat_name.depth()
获取矩阵通道的数目:
mat_name.type()
创建二维Mat对象
Mat Matrix_name(行数,列数,存储元素的数据类型,每个矩阵点的通道数)
存储元素的数据类型
带符号与否:S为符号整型,U为无符号整型,F为浮点型
例如CV_8UC3
通道数
Scalar是一个short型的向量,能够使用指定的定制化值来初始化矩阵,还可以用来表示颜色
2. 图像格式
图像深度
图像位深度=比特数+数据类型
C++中OpenCV库的获取方式:(函数原型)
int Mat::depth()
下表是返回值以及对应含义
CV_[位数][带符号与否][类型前缀]C[通道数]
图像通道数
C++中OpenCV库的获取方式:(函数原型)
int Mat:channels()
图像类型
图像类型=比特数+数据类型+通道数
存储元素的数据类型:
CV_[位数][带符号与否][类型前缀]C[通道数]
带符号与否:S为符号整型,U为无符号整型,F为浮点型
C++中OpenCV库的获取方式:(函数原型)
int Mat:type()
具体数据类型与返回值关系:
单个元素的访问
使用at
方式进行访问,在at
的时候需要指定的数据类型对照表如下: