opencv常用数据结构有如下6类:
1.点Point类
2.尺寸Size类
3.矩形Rect类
4.颜色Scalar类
5.向量Vec类
6.Range类
1.点Point类
定义:一个包含两个整形数据成员x和y的以及一些简单成员方法的类类型
变形:
Point2f----二维单精度浮点型点类
Point2d----二维双精度浮点型点类
Point3i----三维整形点类
2.尺寸Size类
定义:Size类与点Point类的表示十分类似,最主要的区别是,Size(尺寸)类的数据成员是width和 height,而Point类的数据成员是坐标点 。一般用来表示图像的大小,或者矩阵的大小。
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); //指定左上角和右下角点坐标
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类
定义:可以理解为是一个“一维矩阵”。
1. 在OpenCV中没有向量(vector)结构,任何时候需要向量,都只需要一个列矩阵(如果需要一个转置或者共轭向量,则需要一个行向量)。
2 .OpenC矩阵的概念与我们线性代数课上学习的概念相比,更加抽象,这是因为线性代数中的矩阵,矩阵中的矩阵元素只能存储—数值型数据,而OpenCv不是这样的。
示例:
Vec---就是用类型int和将向量模板类做一个实例化,实例化为一个具体的类.其中,第一个参数int--表示Vec中存储的为int类型;第二个参数n为一个整型值,表示Vec每个对象中存储n个int值,也就是---n维向量(列向量)
6.Range类
■
定义:用于指定一个连续的子序列例如一个轮廓的一部分,或者一个矩阵的列空间
示例:
Mat dst = src(Range::all(),Range(0,200));//指定的src图像的区域包括图像的所有行和从第0列到第199列