Template class for 2D rectangles. More...
#include <opencv2/core/types.hpp>
Public Types | |
typedef _Tp | value_type |
Public Member Functions | |
Rect_ () | |
default constructor | |
Rect_ (_Tp _x, _Tp _y, _Tp _width, _Tp _height) | |
Rect_ (const Point_< _Tp > &org, const Size_< _Tp > &sz) | |
Rect_ (const Point_< _Tp > &pt1, const Point_< _Tp > &pt2) | |
Rect_ (const Rect_ &r)=default | |
Rect_ (Rect_ &&r) CV_NOEXCEPT=default | |
_Tp | area () const |
area (width*height) of the rectangle | |
Point_< _Tp > | br () const |
the bottom-right corner | |
bool | contains (const Point_< _Tp > &pt) const |
checks whether the rectangle contains the point | |
bool | empty () const |
true if empty | |
template<typename _Tp2 > | |
operator Rect_< _Tp2 > () const | |
conversion to another data type | |
Rect_ & | operator= (const Rect_ &r)=default |
Rect_ & | operator= (Rect_ &&r) CV_NOEXCEPT=default |
Size_< _Tp > | size () const |
size (width, height) of the rectangle | |
Point_< _Tp > | tl () const |
the top-left corner | |
Public Attributes | |
_Tp | height |
height of the rectangle | |
_Tp | width |
width of the rectangle | |
_Tp | x |
x coordinate of the top-left corner | |
_Tp | y |
y coordinate of the top-left corner | |
Detailed Description
class cv::Rect_< _Tp >
Template class for 2D rectangles.
described by the following parameters:
- Coordinates of the top-left corner. This is a default interpretation of Rect_::x and Rect_::y in OpenCV. Though, in your algorithms you may count x and y from the bottom-left corner.
- Rectangle width and height.
OpenCV typically assumes that the top and left boundary of the rectangle are inclusive, while the right and bottom boundaries are not. For example, the method Rect_::contains returns true if
\[x \leq pt.x < x+width, y \leq pt.y < y+height\]
Virtually every loop over an image ROI in OpenCV (where ROI is specified by Rect_<int> ) is implemented as:
In addition to the class members, the following operations on rectangles are implemented:
- \(\texttt{rect} = \texttt{rect} \pm \texttt{point}\) (shifting a rectangle by a certain offset)
- \(\texttt{rect} = \texttt{rect} \pm \texttt{size}\) (expanding or shrinking a rectangle by a certain amount)
- rect += point, rect -= point, rect += size, rect -= size (augmenting operations)
- rect = rect1 & rect2 (rectangle intersection)
- rect = rect1 | rect2 (minimum area rectangle containing rect1 and rect2 )
- rect &= rect1, rect |= rect1 (and the corresponding augmenting operations)
- rect == rect1, rect != rect1 (rectangle comparison)
This is an example how the partial ordering on rectangles can be established (rect1 \(\subseteq\) rect2):
For your convenience, the Rect_<> alias is available: cv::Rect
- Examples
- samples/cpp/camshiftdemo.cpp, samples/cpp/facedetect.cpp, samples/cpp/falsecolor.cpp, samples/cpp/ffilldemo.cpp, samples/cpp/grabcut.cpp, samples/cpp/peopledetect.cpp, samples/cpp/stitching.cpp, samples/cpp/stitching_detailed.cpp, samples/cpp/train_HOG.cpp, and samples/dnn/object_detection.cpp.
Member Typedef Documentation
◆ value_type
Constructor & Destructor Documentation
◆ Rect_() [1/6]
◆ Rect_() [2/6]
◆ Rect_() [3/6]
◆ Rect_() [4/6]
◆ Rect_() [5/6]
cv::Rect_< _Tp >::Rect_ | ( | const Point_< _Tp > & | org, |
const Size_< _Tp > & | sz | ||
) |
◆ Rect_() [6/6]
cv::Rect_< _Tp >::Rect_ | ( | const Point_< _Tp > & | pt1, |
const Point_< _Tp > & | pt2 | ||
) |
Member Function Documentation
◆ area()
area (width*height) of the rectangle
- Examples
- samples/cpp/camshiftdemo.cpp.
◆ br()
the bottom-right corner
- Examples
- samples/cpp/peopledetect.cpp.
◆ contains()
checks whether the rectangle contains the point
◆ empty()
◆ operator Rect_< _Tp2 >()
conversion to another data type
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ size()
size (width, height) of the rectangle
- Examples
- samples/cpp/stitching_detailed.cpp.
◆ tl()
the top-left corner
Member Data Documentation
◆ height
height of the rectangle
◆ width
width of the rectangle
◆ x
x coordinate of the top-left corner
◆ y
y coordinate of the top-left corner
The documentation for this class was generated from the following file:
- opencv2/core/types.hpp