本笔记来源于《OpenCV3编程入门》 毛星云等著
像素值的存储方法
RGB是最常见的颜色系统,它与人眼采用相似的工作机制,被显示设备所采用。
OpenCV中RGB和BGR有所区别。其中后者是OpenCV默认通道储存顺序。
HSV和HLS把颜色分解成色调、饱和度和亮度/名都。这是描述颜色更自然的方式。可以通过抛弃最后一个元素,使算法对输入图像的光照条件不敏感。
YCrCb在JPEG图像格式中被广泛使用
显示创建Mat对象
最常用的方法就是直接使用Mat()构造函数
如:
Mat M(2,2, CV_8UC3 ,Scalar(0,0,255));
CV_8UC3 和 Scalar(0,0,255)各代表什么?
对于二维多通道图像,首先要定义其尺寸,即行数和列数,然后,需要制定存储元素的数据类型以机每个矩阵点的通道数。为此,依据下面的规则有多种定义:
CV_[位数][带符号与否][类型前缀]C[通道数]
由此可以知道
CV_8UC3代表的是: 使用8位的unsigned char型,每个像素由三个元素组成三通道(预先定义的通道数可达4个)。
Scalar是个short型的向量,能够使用制定的定制化值来初始化矩阵,还可以用来表示颜色
如何创建三维矩阵?
/*-------------朱砂青瓦 创建三维矩阵--------------*/
int sz[3]={2,2,2};
Mat L(3,sz,CV_8UC,scalar::all(0));
第一个参数指定维数,然后传递一个指向一个数组的指针,包含每个维度的尺寸。
另外可以使用Mat类自带的Create()函数来初始化Mat类
/*-------------朱砂青瓦