4.3.1 cv :: Point_ <_Tp>
4.3.1.1 定义
2D点的模板类。
该类的实例可与C结构CvPoint和CvPoint2D32f互换。还有一个强制转换操作符可将点坐标转换为指定的类型。从浮点坐标到整数坐标的转换是通过舍入完成的。通常,转换对每个坐标使用此操作。除了上述声明中列出的类成员外,还实现了以下关于点的操作:
pt1 = pt2 + pt3;
pt1 = pt2 - pt3;
pt1 = pt2 * a;
pt1 = a * pt2;
pt1 = pt2 / a;
pt1 += pt2;
pt1 -= pt2;
pt1 *= a;
pt1 /= a;
double value = norm(pt); // L2 norm
pt1 == pt2;
pt1 != pt2;
为方便起见,定义了以下类型别名:
typedef Point_ <int> Point2i ;
typedef Point2i Point ;
typedef Point_ <float> Point2f ;
typedef Point_ <double> Point2d ;
4.3.1.2 成员和接口
成员:
_Tp x; | 点的x坐标 |
_Tp y; | 点的y坐标 |
接口:
Point_(); |
|
Point_(_Tp _x, _Tp _y); |
|
Point_(const Point_& pt); |
|
Point_(const Vec<_Tp, 2>& v); |
|
Point_& operator = (const Point_& pt); |
|
_Tp dot(const Point_& pt) const; | 点积 |
double ddot(const Point_& pt) const; | 用双精度算术计算的点积 |
double cross(const Point_& pt) const; | 叉积 |
bool inside(const Rect_<_Tp>& r) const; | 检查该点是否在指定的矩形内 |
4.3.2 cv::Point3_< _Tp >
4.3.1.1 定义
3D点的模板类。
该类的实例可与C结构CvPoint2D32f相互转换。与Point_类似,3D点的坐标可以转换为另一种类型。还支持向量算术和比较操作。
以下Point3_ <>别名可用:
typedef Point3_ <int> Point3i ;
typedef Point3_ <float> Point3f ;
typedef Point3_ <double> Point3d ;
4.3.1.2 成员和接口
成员:
_Tp x; |
|
_Tp y; |
|
_Tp z; |
|
接口:
Point3_(); |
|
Point3_(_Tp _x, _Tp _y, _Tp _z); |
|
Point3_(const Point3_& pt); |
|
Point3_(const Vec<_Tp, 3>& v); |
|
Point3_& operator = (const Point3_& pt); |
|
_Tp dot(const Point3_& pt) const; |
|
double ddot(const Point3_& pt) const; |
|
Point3_ cross(const Point3_& pt) const; |
|
4.3.3 cv::Rect_< _Tp >
4.3.3.1 定义
2D矩形的模板类。
4.3.3.2 成员和接口
成员:
_Tp x; | 左上角的x坐标 |
_Tp y; | 左上角的y坐标 |
_Tp width; | 矩形宽度 |
_Tp height; | 矩形高 |
接口:
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); |
|
Rect_& operator = ( const Rect_& r ); |
|
Point_<_Tp> tl() const; | 左上点 |
Point_<_Tp> br() const; | 右下点 |
Size_<_Tp> size() const; | 宽、高 |
_Tp area() const; | 面积 |
bool empty() const; | 是否为空 |
bool contains(const Point_<_Tp>& pt) const; | 检查矩形是否包含该点 |
4.3.4 cv::RotatedRect
4.3.4.1 定义
该类表示平面上的旋转(即非右上)矩形。每个矩形由中心点(质心),每边的长度(由Size2f结构表示)和以度为单位的旋转角度指定。
4.3.4.2 成员和接口
成员:
Point2f center; | 矩形中心点 |
Size2f size; | 矩形的宽、高 |
float angle; | 旋转角度。当角度为0、90、180、270等时,矩形变为右上矩形。 |
接口:
RotatedRect(); |
|
RotatedRect(const Point2f& center, const Size2f& size, float angle); |
|
RotatedRect(const Point2f& point1, const Point2f& point2, const Point2f& point3); | 旋转矩形的任意3个端点。它们必须按顺序给出(顺时针或逆时针)。 |
void points(Point2f pts[]) const; | 返回矩形的4个顶点。顺序是左下角,左上角,右上角,右下角。 |
Rect boundingRect() const; | 返回包含旋转矩形的最小上下整数矩形 |
Rect_<float> boundingRect2f() const; | 返回包含旋转矩形的最小(精确)浮点矩形,不用于图像 |