[TOC]
概述
文章参考:https://blog.csdn.net/iracer/article/details/51292349
概述
OpenCV中强大的Mat类型大家已经比较熟悉了。这里梳理一些在工程中其他经常用到的几种基本数据类型。包括:
1 2 3 4 5 6 7 8 9 10 11
| Vec
Scalar
Point
Size
Rect
RotatedRect
|
Vec类
基本概念
Vec是一个模板类,主要用于存储数值向量。
可用它来定义任意类型的向量
1
| Vec<double, 8> myVector;
|
使用[]访问Vec向量成员
可使用以下预定义的类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| typedef Vec<uchar, 2> Vec2b; typedef Vec<uchar, 3> Vec3b; typedef Vec<uchar, 4> Vec4b; typedef Vec<short, 2> Vec2s; typedef Vec<short, 3> Vec3s; typedef Vec<short, 4> Vec4s; typedef Vec<int, 2> Vec2i; typedef Vec<int, 3> Vec3i; typedef Vec<int, 4> Vec4i; typedef Vec<float, 2> Vec2f; typedef Vec<float, 3> Vec3f; typedef Vec<float, 4> Vec4f; typedef Vec<float, 6> Vec6f; typedef Vec<double, 2> Vec2d; typedef Vec<double, 3> Vec3d; typedef Vec<double, 4> Vec4d; typedef Vec<double, 6> Vec6d;
|
Vec支持的运算如下:
1 2 3 4 5 6 7 8
| v1 = v2 + v3 v1 = v2 - v3 v1 = v2 * scale v1 = scale * v2 v1 = -v2 v1 += v2 v1 == v2, v1 != v2 norm(v1) (euclidean norm)
|
示例代码
向量定义与元素的访问
1 2 3 4 5 6 7
| cv::Vec<double, 8> myVector; for(int i=0; i<myVector.rows;i++) myVector[i] = i; cout<<"myVector= "<<myVector<<endl; cout<<"myVector[0]= "<<myVector[0]<<endl; cout<<"myVector[3]= "<<myVector[3]<<endl;
|