03_OpenCv之向量类Vec
一.定义
这里的向量可以理解为数学意义上的列向量,构造一个_cnx1的列向量,数据类型为_Tp,格式如下:
Vec<Typename _Tp, int _cn>
二.构造向量类
比如构造一个长度为3,数据类型为int且初始化为21、32、14的列向量,代码如下:
Vec<int, 3> vi(21, 32, 14);
通过成员变量rows和cols可以看出,通过以上方式构造的向量默认为列向量:
cout << "向量的行数:" << vi.rows << endl;//输出: "向量的行数:3"
cout << "向量的列数:" << vi.cols << endl;//输出: "向量的列数:1"
三.访问向量中的值
可以通过"[]“或者”()"访问向量中的值:
cout << "访问第0个元素:" << vi[0] << endl;//输出: "访问第0个元素:21"
cout << "访问第1个元素:" << vi(1) << endl;//输出: "访问第1个元素:32"
四.OpenCv中对向量类的声明
typedef Vec<uchar, 3> Vec3b;
typedef Vec<int, 2> Vec2i;
typedef Vec<float, 4> Vec4f;
typedef Vec<double, 3> Vec3d;
单通道矩阵的每一个元素都是一个数值,多通道矩阵的每一个元素都可以看作一个向量