OpenCV: cv::Point_< _Tp > Class Template Reference

| OpenCV 3.4.2 Open Source Computer Vision

Public Types | Public Member Functions | Public Attributes | List of all members
cv::Point_< _Tp > Class Template Reference
Core functionality » Basic structures

Template class for 2D points specified by its coordinates `x` and `y`. More...

`#include "types.hpp"`

## Public Types
typedef _Tp | value_type

## Public Member Functions
| Point_ ()
| default constructor More...
| Point_ (_Tp _x, _Tp _y)
| Point_ (const Point_ &pt)
| Point_ (const Size_< _Tp > &sz)
| Point_ (const Vec< _Tp, 2 > &v)
double | cross (const Point_ &pt) const
| cross-product More...
double | ddot (const Point_ &pt) const
| dot product computed in double-precision arithmetics More...
_Tp | dot (const Point_ &pt) const
| dot product More...
bool | inside (const Rect_< _Tp > &r) const
| checks whether the point is inside the specified rectangle More...
template<typename _Tp2 >
| operator Point_< _Tp2 > () const
| conversion to another data type More...
| operator Vec< _Tp, 2 > () const
| conversion to the old-style C structures More...
Point_ & | operator= (const Point_ &pt)

## Public Attributes
_Tp | x
| x coordinate of the point More...
_Tp | y
| y coordinate of the point More...

## Detailed Description

### template<typename _Tp>
class cv::Point_< _Tp >

Template class for 2D points specified by its coordinates `x` and `y`.

An instance of the class is interchangeable with C structures, CvPoint and CvPoint2D32f . There is also a cast operator to convert point coordinates to the specified type. The conversion from floating-point coordinates to integer coordinates is done by rounding. Commonly, the conversion uses this operation for each of the coordinates. Besides the class members listed in the declaration above, the following operations on points are implemented:

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;

For your convenience, the following type aliases are defined:

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

Example:

Point2f a(0.3f, 0.f), b(0.f, 0.4f);
Point pt = (a + b)*10.f;
cout << pt.x << ", " << pt.y << endl;

Examples:
  camshiftdemo.cpp, cloning_demo.cpp, convexhull.cpp, demhist.cpp, Drawing_1.cpp, Drawing_2.cpp, facedetect.cpp, falsecolor.cpp, ffilldemo.cpp, fitellipse.cpp, grabcut.cpp, houghcircles.cpp, kalman.cpp, kmeans.cpp, MatchTemplate_Demo.cpp, minarea.cpp, and watershed.cpp.

## Member Typedef Documentation

## ◆ value_type

template<typename _Tp>

typedef _Tp cv::Point_< _Tp >::value_type

## Constructor & Destructor Documentation

## ◆ Point_() [1/5]

template<typename _Tp>

cv::Point_< _Tp >::Point_ | ( |  | ) |

default constructor

## ◆ Point_() [2/5]

template<typename _Tp>

cv::Point_< _Tp >::Point_ | ( | _Tp | _x,
|  | _Tp | _y
| ) |  |

## ◆ Point_() [3/5]

template<typename _Tp>

cv::Point_< _Tp >::Point_ | ( | const Point_< _Tp > & | pt | ) |

## ◆ Point_() [4/5]

template<typename _Tp>

cv::Point_< _Tp >::Point_ | ( | const Size_< _Tp > & | sz | ) |

## ◆ Point_() [5/5]

template<typename _Tp>

cv::Point_< _Tp >::Point_ | ( | const Vec< _Tp, 2 > & | v | ) |

## Member Function Documentation

## ◆ cross()

template<typename _Tp>

double cv::Point_< _Tp >::cross | ( | const Point_< _Tp > & | pt | ) | const

cross-product

## ◆ ddot()

template<typename _Tp>

double cv::Point_< _Tp >::ddot | ( | const Point_< _Tp > & | pt | ) | const

dot product computed in double-precision arithmetics

## ◆ dot()

template<typename _Tp>

_Tp cv::Point_< _Tp >::dot | ( | const Point_< _Tp > & | pt | ) | const

dot product

## ◆ inside()

template<typename _Tp>

bool cv::Point_< _Tp >::inside | ( | const Rect_< _Tp > & | r | ) | const

checks whether the point is inside the specified rectangle

## ◆ operator Point_< _Tp2 >()

template<typename _Tp>
template<typename _Tp2 >

cv::Point_< _Tp >::operator Point_< _Tp2 > | ( |  | ) | const

conversion to another data type

## ◆ operator Vec< _Tp, 2 >()

template<typename _Tp>

cv::Point_< _Tp >::operator Vec< _Tp, 2 > | ( |  | ) | const

conversion to the old-style C structures

## ◆ operator=()

template<typename _Tp>

Point_& cv::Point_< _Tp >::operator= | ( | const Point_< _Tp > & | pt | ) |

## Member Data Documentation

## ◆ x

template<typename _Tp>

_Tp cv::Point_< _Tp >::x

x coordinate of the point

Examples:
  camshiftdemo.cpp, cloning_demo.cpp, convexhull.cpp, Drawing_2.cpp, facedetect.cpp, fitellipse.cpp, kmeans.cpp, MatchTemplate_Demo.cpp, and minarea.cpp.

## ◆ y

template<typename _Tp>

_Tp cv::Point_< _Tp >::y

y coordinate of the point

Examples:
  camshiftdemo.cpp, cloning_demo.cpp, convexhull.cpp, Drawing_2.cpp, facedetect.cpp, fitellipse.cpp, kmeans.cpp, MatchTemplate_Demo.cpp, and minarea.cpp.

The documentation for this class was generated from the following file:

- core/include/opencv2/core/types.hpp