常用数据结构[OpenCV 笔记12]

Point

二维坐标系下的整数点, 定义如下

typedef Point_<int> Point2i;
typedef Point2i Point;
typedef Point_<float> Point2f;

构造函数如下:

Point_ ()
Point_ (_Tp _x, _Tp _y)
Point_ (const Point_ &pt)
Point_ (const Size_< _Tp > &sz)
Point_ (const Vec< _Tp, 2 > &v)

初始化示例,

Point point1;
point1.x = 10;
point1.y = 8;
Point point2 = Point(10, 8);

Scalar

四个元素的数组,用于传递像素值,如BGR,如果不需要第四个参数可以不写。Scalar类等同于Scalar_<double>,Scalar_类是Vec4x的变种。

Scalar_ ()
Scalar_ (_Tp v0, _Tp v1, _Tp v2=0, _Tp v3=0)
Scalar_ (_Tp v0)
Scalar_ (const Vec< _Tp2, cn > &v)

Size

尺寸类,保存宽度和高度,定义如下

typedef Size_<int> Size2i;
typedef Size2i Size;

构造函数为,和常用的两个public成员变量,声明如下

Size_ ();
Size_ (_Tp _width, _Tp _height);
Size_ (const Size_ &sz);
Size_ (const Point_< _Tp > &pt);

_Tp width, height;

Rect

矩形类,成员变量有:x, y, width, heigh, 分别为左上角坐标和矩形的宽和高。构造函数为:

Rect_ ()
Rect_ (_Tp _x, _Tp _y, _Tp _width, _Tp _height)
Rect_ (const Rect_ &r)
Rect_ (const Point_< _Tp > &org, const Size_< _Tp > &sz)
Rect_ (const Point_< _Tp > &pt1, const Point_< _Tp > &pt2)
_Tp     area () const

矩形的面积:width*height

 Point_< _Tp >   br () const

右下角点的坐标

bool    contains (const Point_< _Tp > &pt) const

检查点是否在矩形内部

Size_< _Tp >    size () const

矩形的尺寸

Point_< _Tp >   tl () const

左上角点的坐标

Rect rect = rect1 & rect2;
Rect rect = rect1 | rect2;

求矩形的交集和并集

Rect rectShift = rect + point;
Rect rectScale = rect + size;

根据位置变化量point,移动矩形;根据尺寸变化量size,扩展或缩小矩形。

原文地址:https://www.cnblogs.com/Xiaoyan-Li/p/5677341.html