opencv常用数据结构

转载
opencv常用数据结构有如下6类:
1.点Point类
2.尺寸Size类
3.矩形Rect类
4.颜色Scalar类
5.向量Vec类
6.Range类

1.点Point类

定义:一个包含两个整形数据成员x和y的以及一些简单成员方法的类类型
变形:
Point2f----二维单精度浮点型点类
Point2d----二维双精度浮点型点类
Point3i----三维整形点类

opencv常用数据结构

2.尺寸Size类

定义:Size类与点Point类的表示十分类似,最主要的区别是,Size(尺寸)类的数据成员是width和 height,而Point类的数据成员是坐标点 。一般用来表示图像的大小,或者矩阵的大小。
opencv常用数据结构

3.矩形Rect类

定义:它有四个很重要的数据成员x,y,width,height,分别代表这个矩形左上角的坐标点和矩形 的宽度和高度,并且Rect类提供了很实用的一些成员方法,比如说:求左上角和右下角的成员函数,等等。
构造函数1:Rect_(_Tp _x, _Tp _y, _Tp width, Tp height); //指定左上角点坐标、长、宽
构造函数2:Rect
(const Point
<Tp>& org, const Size<Tp>& sz); //指定左上角坐标和尺寸Size
构造函数3:Rect
(const Point
<Tp>& pt1, const Point<_Tp>& pt2); //指定左上角和右下角点坐标
opencv常用数据结构

4.颜色Scalar类

定义:一个使用4个元素指定的特殊的Vec向量类模板的类模板 ,也就是说Scalar颜色类是一个特殊的向量Vec类
构造函数:
Scalar_(_Tp v0, _Tp v1, _Tp v2=0, _Tp v3=0);
这个默认构造函数的四个参数分别表示RGB+Alpha颜色中的:
v0—表示RGB中的------blue-----B—蓝色分量
v1—表示RGB中的------Green----G—绿色分量
v2—表示RGB中的------Red------R—红色分量
v3—表示Alpha---------------------透明色分量

5.向量Vec类

定义:可以理解为是一个一维数组或一维矩阵。
Vec<int,n>—就是用类型int和将向量模板类做一个实例化,实例化为一个具体的类.其中,第一个参数int–表示Vec中存储的为int类型;第二个参数n为一个整型值,表示Vec每个对象中存储n个int值,也就是—n维向量(列向量),模板类简化写法如下:
opencv常用数据结构
6.Range类
定义:用于指定一个连续的子序列例如一个轮廓的一部分,或者一个矩阵的列空间
opencv常用数据结构
示例:
Mat dst = src(Range::all(),Range(0,200));//指定的src图像的区域包括图像的所有行和从第0列到第199列