作者:喂_早安学院_703 | 来源:互联网 | 2024-09-29 11:03
篇首语:本文由编程笔记#小编为大家整理,主要介绍了opencv类简单分析: Point相关的知识,希望对你有一定的参考价值。
定义
point的定义其实只是一个别名,如下,它最终是由Point_
模板得来的
typedef Point_<int> Point2i;
typedef Point_ Point2l;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;
typedef Point2i Point
下面简单分析下Point_
模板
1. Point_
是一个由坐标’ x ‘和’ y ‘指定的2D点的模板类
2. 类的实例可以与C结构体、CvPoint、CvPoint2D32f互换&#xff0c;还有一个转换操作符将点坐标转换为指定类型&#xff0c;从浮点坐标到整数坐标的转换是通过四舍五入来完成的&#xff0c;通常&#xff0c;转换对每个坐标使用这个操作
3. 除了上述声明中列出的类成员外&#xff0c;还对点执行以下操作:
pt1 &#61; pt2 &#43; pt3
pt1 &#61; pt2 - pt3
pt1 &#61; pt2 * a
pt1 &#61; a * pt2
pt1 &#61; pt2 / a
pt1 &#43;&#61; pt2
pt1 -&#61; pt2
pt1 *&#61; a
pt1 /&#61; a
double value &#61; norm(pt)
pt1 &#61;&#61; pt2
pt1 !&#61; pt2
template<typename _Tp> class Point_
public:
typedef _Tp value_type;
Point_();
Point_(_Tp _x, _Tp _y);
Point_(const Point_& pt);
Point_(const Size_<_Tp>& sz);
Point_(const Vec<_Tp, 2>& v);
Point_& operator &#61; (const Point_& pt);
template<typename _Tp2> operator Point_<_Tp2>() const;
operator Vec<_Tp, 2>() const;
_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;
_Tp x;
_Tp y;
;
用法例子&#xff1a;
...
int main(int argc, char *argv[])
Point2f a(0.3f, 0.2f), b(0.1f, 0.4f);
Point pt &#61; (a &#43; b)*10.f;
cout <<"pt: "<", " < double aa &#61; a.ddot(b);
double bb &#61; a.cross(b);
cout <<"aa: "< cout <<"bb: "< return 0;
输出结果&#xff1a;
pt: 4, 6
aa: 0.11
bb: 0.1