Opencv学习----基本结构对象-几何对象(cv :: Point、cv::Rect、cv::RotatedRect)

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;

返回包含旋转矩形的最小(精确)浮点矩形,不用于图像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dylan55_you

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值