cv::Rect_< _Tp > Class Template Reference 核心功能 » 基本结构


Template class for 2D rectangles. 更多...

#include <opencv2/core/types.hpp>

公共类型

typedef _Tp  value_type
 

Public Member Functions

  Rect_ ()
  default constructor 更多...
 
  Rect_ (_Tp _x, _Tp _y, _Tp _width, _Tp _height)
 
  Rect_ (const Rect_ &r)
 
  Rect_ ( Rect_ &&r) CV_NOEXCEPT
 
  Rect_ (const Point_ < _Tp > &org, const Size_ < _Tp > &sz)
 
  Rect_ (const Point_ < _Tp > &pt1, const Point_ < _Tp > &pt2)
 
_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)
 
Rect_ operator= ( Rect_ &&r) CV_NOEXCEPT
 
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 更多...
 

详细描述

template<typename _Tp>
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:

for ( int y = roi.y; y < roi.y + roi.height; y ++)
for ( int x = roi.x; x < roi.x + roi.width; x ++)
{
// ...
}

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):

template < typename _Tp> inline bool
operator <= (const Rect_<_Tp>& r1, const Rect_<_Tp>& r2)
{
return (r1 & r2) == r1;
}

For your convenience, the Rect_ <> alias is available: cv::Rect

范例:
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 ,和 samples/dnn/object_detection.cpp .

Member Typedef Documentation

◆  value_type

template<typename _Tp>
typedef _Tp cv::Rect_ < _Tp >:: value_type

Constructor & Destructor Documentation

◆  Rect_() [1/6]

template<typename _Tp>
cv::Rect_ < _Tp >:: Rect_ ( )

default constructor

◆  Rect_() [2/6]

template<typename _Tp>
cv::Rect_ < _Tp >:: Rect_ ( _Tp  _x ,
_Tp  _y ,
_Tp  _width ,
_Tp  _height  
)

◆  Rect_() [3/6]

template<typename _Tp>
cv::Rect_ < _Tp >:: Rect_ ( const Rect_ < _Tp > &  r )

◆  Rect_() [4/6]

template<typename _Tp>
cv::Rect_ < _Tp >:: Rect_ ( Rect_ < _Tp > &&  r )

◆  Rect_() [5/6]

template<typename _Tp>
cv::Rect_ < _Tp >:: Rect_ ( const Point_ < _Tp > &  org ,
const Size_ < _Tp > &  sz  
)

◆  Rect_() [6/6]

template<typename _Tp>
cv::Rect_ < _Tp >:: Rect_ ( const Point_ < _Tp > &  pt1 ,
const Point_ < _Tp > &  pt2  
)

成员函数文档编制

◆  area()

template<typename _Tp>
_Tp cv::Rect_ < _Tp >::area ( ) const

area (width*height) of the rectangle

范例:
samples/cpp/camshiftdemo.cpp .

◆  br()

template<typename _Tp>
Point_ <_Tp> cv::Rect_ < _Tp >::br ( ) const

the bottom-right corner

范例:
samples/cpp/peopledetect.cpp .

◆  contains()

template<typename _Tp>
bool cv::Rect_ < _Tp >::contains ( const Point_ < _Tp > &  pt ) const

checks whether the rectangle contains the point

◆  empty()

template<typename _Tp>
bool cv::Rect_ < _Tp >::empty ( ) const

true if empty

◆  operator Rect_ < _Tp2 > ()

template<typename _Tp>
template<typename _Tp2 >
cv::Rect_ < _Tp >::operator Rect_ < _Tp2 > ( ) const

conversion to another data type

◆  operator=() [1/2]

template<typename _Tp>
Rect_ & cv::Rect_ < _Tp >::operator= ( const Rect_ < _Tp > &  r )

◆  operator=() [2/2]

template<typename _Tp>
Rect_ & cv::Rect_ < _Tp >::operator= ( Rect_ < _Tp > &&  r )

◆  size()

template<typename _Tp>
Size_ <_Tp> cv::Rect_ < _Tp >::size ( ) const

size (width, height) of the rectangle

范例:
samples/cpp/stitching_detailed.cpp .

◆  tl()

template<typename _Tp>
Point_ <_Tp> cv::Rect_ < _Tp >::tl ( ) const

Member Data Documentation

◆  height

◆  width

◆  x

◆  y


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