表格线识别通用库文档
载入中...
搜索中...
未找到
cm::Rect类 参考

矩形类 更多...

#include <rect.hpp>

struct  Hash
 矩形的哈希仿函数 更多...
 
struct  Margin
 矩形外边距结构体 更多...
 

Public 成员函数

 Rect ()
 矩形类的默认构造函数
 
 Rect (int x, int y, int width, int height)
 矩形类的带参构造函数
 
 Rect (Point2i pt1, Point2i pt2)
 矩形类的带参构造函数
 
 Rect (const Rect &rect)
 矩形类的拷贝构造函数
 
 Rect (const cv::Vec4i &rect)
 矩形类的带参构造函数
 
 Rect (const cv::Rect &rect)
 矩形类的带参构造函数
 
 Rect (const std::vector< int > &list)
 矩形类的移动构造函数
 
 ~Rect ()
 矩形类默认析构函数
 
 operator cv::Rect () const
 将矩形类转换为 OpenCV 的 cv::Rect 类型
 
 operator cv::Vec4i () const
 将矩形类转换为 OpenCV 的 cv::Vec4i 类型
 
 operator std::vector< int > () const
 将矩形类转换为 std::vector<int> 类型
 
bool IsPoint () const
 判断矩形是否为一个点
 
template<typename U >
bool Include (const Point< U > &pt, const Margin &margin=0, bool is_include_boundaries=true) const
 判断所给点是否被矩形包含
 
bool Include (const Line &line, const Margin &margin=0, bool is_include_boundaries=true) const
 判断给定线段是否完全位于矩形内部
 
bool Include (const Rect &rect, const Margin &margin=0, bool is_include_boundaries=true) const
 判断所给矩形是否被矩形包含
 
bool IsIntersect (const Rect &rect, IntersectType type=INTERSECT_XY, const Margin &margin=0, bool is_include_boundaries=false) const
 判断所给矩形是否与矩形相交(不算边界)
 
bool IsIntersect (const Line &line, IntersectType type=INTERSECT_XY, const Margin &margin=0, bool is_include_boundaries=true) const
 判断所给线是否与矩形相交(算边界)
 
Rect Intersect (const Rect &rect) const
 计算两相交矩形所返回的新矩形(包含边界)
 
Line Intersect (const Line &line) const
 计算矩形与直线相交部分(包含边界)
 
Rect Union (const Rect &rect) const
 计算两个矩形的并集
 
Point2i DiagonalPoint (bool is_left_top=false) const
 获取矩形的对角点坐标
 
Point2d CenterPoint () const
 获取矩形的中心坐标
 
RectTranslate (int dx, int dy)
 矩形平移
 
RectScale (double factor)
 矩形缩放
 
RectScale (const Margin &margin)
 矩形缩放
 
RectTidyRect ()
 整理矩形
 

Public 属性

int x
 矩形的左上角 x 坐标(仅当矩形宽高为正数时)
 
int y
 矩形的左上角 y 坐标(仅当矩形宽高为正数时)
 
int width
 矩形的宽度
 
int height
 矩形的高度
 

友元

bool operator== (const Rect &rect1, const Rect &rect2)
 矩形类重载等于号
 
bool operator!= (const Rect &rect1, const Rect &rect2)
 矩形类重载不等于号
 
bool operator< (const Rect &rect1, const Rect &rect2)
 矩形类重载小于号
 
bool operator> (const Rect &rect1, const Rect &rect2)
 矩形类重载大于号
 
bool operator<= (const Rect &rect1, const Rect &rect2)
 矩形类重载小于等于号
 
bool operator>= (const Rect &rect1, const Rect &rect2)
 矩形类重载大于等于号
 
std::ostream & operator<< (std::ostream &out, const Rect &rect)
 矩形类重载输出流运算符
 

详细描述

矩形类

作者
justliulong
日期
2024-01-09

在文件 rect.hpp31 行定义.

构造及析构函数说明

◆ Rect() [1/7]

cm::Rect::Rect ( )
inline

矩形类的默认构造函数

用于初始化矩形对象的位置和尺寸参数。

作者
justliulong
日期
2023-12-03

在文件 rect.hpp201 行定义.

这是这个函数的调用关系图:

◆ Rect() [2/7]

cm::Rect::Rect ( int x,
int y,
int width,
int height )
inline

矩形类的带参构造函数

根据左上角横纵坐标和宽高构造矩形对象。

参数
x矩形的左上角 x 坐标(仅当矩形宽高为正数时)
y矩形的左上角 y 坐标(仅当矩形宽高为正数时)
width矩形的宽度
height矩形的高度
作者
justliulong
日期
2023-12-03

在文件 rect.hpp215 行定义.

函数调用图:

◆ Rect() [3/7]

cm::Rect::Rect ( Point2i pt1,
Point2i pt2 )
inline

矩形类的带参构造函数

根据左上角和右下角的点坐标来构造矩形对象。

参数
pt1矩形的左上角的点坐标(仅当矩形宽高为正数时)
pt2矩形的右下角的点坐标(仅当矩形宽高为正数时)
作者
justliulong
日期
2023-12-03

在文件 rect.hpp229 行定义.

函数调用图:

◆ Rect() [4/7]

cm::Rect::Rect ( const Rect & rect)
inline

矩形类的拷贝构造函数

通过另一个矩形对象进行拷贝构造。

参数
rect要拷贝的矩形对象
作者
justliulong
日期
2023-12-03

在文件 rect.hpp242 行定义.

◆ Rect() [5/7]

cm::Rect::Rect ( const cv::Vec4i & rect)
inline

矩形类的带参构造函数

通过传入的 OpenCV Vec4i 对象,将其分别赋值给矩形类的 x、y、width 和 height 成员变量,然后调用 TidyRect() 方法对矩形进行整理处理。

参数
rectOpenCV 的四元素整型向量
作者
justliulong
日期
2023-12-07

在文件 rect.hpp266 行定义.

函数调用图:

◆ Rect() [6/7]

cm::Rect::Rect ( const cv::Rect & rect)
inline

矩形类的带参构造函数

根据 OpenCV 中的 Rect 对象来构造矩形对象。将传入的 OpenCV 矩形对象的 x、y、width 和 height 成员赋值给矩形类的对应成员变量,然后调用 TidyRect() 方法对矩形进行整理处理,确保 width 和 height 均为非负值。

参数
rectOpenCV 的矩形对象
作者
justliulong
日期
2023-12-03

在文件 rect.hpp253 行定义.

函数调用图:

◆ Rect() [7/7]

cm::Rect::Rect ( const std::vector< int > & list)
inline

矩形类的移动构造函数

该移动构造函数接受一个标准库的 4 元素整型向量,并将其作为矩形的位置和尺寸参数,从而初始化矩形对象。

参数
list标准库 4 元素整型向量,包含矩形的 x 坐标、y 坐标、宽度和高度
作者
dreamy-xay
日期
2023-12-14

在文件 rect.hpp279 行定义.

函数调用图:

◆ ~Rect()

cm::Rect::~Rect ( )
inline

矩形类默认析构函数

该析构函数将释放类对象所占用的空间资源。

作者
justliulong
日期
2023-12-03

在文件 rect.hpp297 行定义.

成员函数说明

◆ CenterPoint()

Point2d cm::Rect::CenterPoint ( ) const
inline

获取矩形的中心坐标

计算矩形中心点的坐标,是通过将矩形的左上角坐标的横坐标加上矩形宽度的一半得到中心点的横坐标,将矩形的左上角坐标的纵坐标加上矩形高度的一半得到中心点的纵坐标。这样可以得到矩形中心点的完整坐标。

返回
矩形中心坐标
作者
justliulong
日期
2023-12-03

在文件 rect.hpp785 行定义.

◆ DiagonalPoint()

Point2i cm::Rect::DiagonalPoint ( bool is_left_top = false) const
inline

获取矩形的对角点坐标

对角点一共有两种情况:一种是左上角的对角点,另一个是右下角坐标。函数根据传入的参数来确定返回哪种对角点坐标,默认返回右下角坐标。

参数
is_left_top是否获取左上角点坐标,为 false 时获取右下角点坐标 默认值 fasle
返回
对角点坐标
作者
justliulong
日期
2023-12-03

在文件 rect.hpp769 行定义.

这是这个函数的调用关系图:

◆ Include() [1/3]

bool cm::Rect::Include ( const Line & line,
const Margin & margin = 0,
bool is_include_boundaries = true ) const
inline

判断给定线段是否完全位于矩形内部

函数会检查线段的两个端点是否都位于考虑了扩展外边距后的矩形内部。如果线段的两个端点都位于矩形内(默认包括边界),则返回真,否则返回假。

参数
line线
margin外边距,将矩形的四边界扩展/缩小 margin 个单位,看线是否还被矩形包含 默认值 0
is_include_boundaries是否包含矩形边界 默认值 true
返回
返回线是否被矩形包含
返回值
true线被矩形包含(根据所给的外边距和是否包含边界条件)
false线不被矩形包含(根据所给的外边距和是否包含边界条件)
作者
justliulong
日期
2023-12-03

在文件 rect.hpp559 行定义.

函数调用图:

◆ Include() [2/3]

template<typename U >
bool cm::Rect::Include ( const Point< U > & pt,
const Margin & margin = 0,
bool is_include_boundaries = true ) const
inline

判断所给点是否被矩形包含

该函数使用给定的外边距来调整矩形的边界,然后检查给定点是否位于调整后的矩形内部,如果设置了 is_include_boundaries 为 true,则点接触到矩形的边界也被视为被包含。

模板参数
T点的坐标类型
注意
模板参数 T 应为整型、浮点型或双精度浮点型等可比较的数值类型,以确保正确的比较操作。
参数
pt
margin外边距,将矩形的四边界扩展/缩小 margin 个单位,看点是否还被矩形包含 默认值 0
is_include_boundaries是否包含矩形边界 默认值 true
返回
返回点是否被矩形包含
返回值
true点被矩形包含
false点不被矩形包含
作者
justliulong
日期
2023-12-04

在文件 rect.hpp537 行定义.

这是这个函数的调用关系图:

◆ Include() [3/3]

bool cm::Rect::Include ( const Rect & rect,
const Margin & margin = 0,
bool is_include_boundaries = true ) const
inline

判断所给矩形是否被矩形包含

此函数用于判断一个给定的矩形是否被当前矩形包含。它通过四个顶点的判断来确定矩形的包含关系。可以根据外边距和是否包含边界的条件来灵活判断包含关系。

参数
rect矩形
margin外边距,将当前矩形的四边界向外扩展或向内缩小 margin 个单位后,判断所给矩形是否被矩形包含 默认值 0
is_include_boundaries是否包含矩形边界 默认值 true
返回
返回值
true给定矩形被当前矩形包含(根据外边距和是否包含边界的条件判定)
false给定矩形不被当前矩形包含(根据外边距和是否包含边界的条件判定)
作者
justliulong
日期
2023-12-03

在文件 rect.hpp578 行定义.

函数调用图:

◆ Intersect() [1/2]

Line cm::Rect::Intersect ( const Line & line) const
inline

计算矩形与直线相交部分(包含边界)

计算矩形与直线相交部分,得到直线在矩形中的截取部分并返回,该部分包含直线与矩形的交点以及边界点。

注意
使用函数有以下注意点:
  • 函数不会计算线延长的相交部分。
  • 函数对于边界情况,比如横线(竖线)和矩形上下(左右)边界有一部分重合的情况将会返回重合的部分,如果横线(竖线)和矩形左右(上下)边界只有端点有一个交点,另一个交点在矩形的外部就返回一个为点的特殊线。
参数
line线
返回
直线被矩形所截取的部分
作者
justliulong
日期
2023-12-03

在文件 rect.hpp682 行定义.

函数调用图:

◆ Intersect() [2/2]

Rect cm::Rect::Intersect ( const Rect & rect) const
inline

计算两相交矩形所返回的新矩形(包含边界)

计算两个相交矩形的交集,得到新的矩形并返回,该矩形包含原始两个矩形的交集部分以及边界。

参数
rect矩形
返回
两个矩形相交部分的矩形
作者
justliulong
日期
2023-12-03

在文件 rect.hpp658 行定义.

◆ IsIntersect() [1/2]

bool cm::Rect::IsIntersect ( const Line & line,
IntersectType type = INTERSECT_XY,
const Margin & margin = 0,
bool is_include_boundaries = true ) const
inline

判断所给线是否与矩形相交(算边界)

此函数考虑线段与矩形的边界情况,根据相交类型、外边距和是否包含边界条件来灵活判断相交关系。

参数
line线
type相交类型枚举
margin外边距,将矩形的四边界向外扩展或向内缩小 margin 个单位后,判断线段是否与矩形相交 默认值 0
is_include_boundaries是否包含矩形边界 默认值 true
返回
返回值
true线段与矩形相交(根据外边距和是否包含边界的条件判定)
false线段不与矩形相交(根据外边距和是否包含边界的条件判定)
作者
justliulong
日期
2023-12-03

在文件 rect.hpp627 行定义.

函数调用图:

◆ IsIntersect() [2/2]

bool cm::Rect::IsIntersect ( const Rect & rect,
IntersectType type = INTERSECT_XY,
const Margin & margin = 0,
bool is_include_boundaries = false ) const
inline

判断所给矩形是否与矩形相交(不算边界)

此函数用于判断一个给定的矩形是否与当前矩形相交,根据相交类型和是否包含边界的条件来灵活判断相交关系。

参数
rect矩形
type相交类型,可选值为 cm::INTERSECT_Xcm::INTERSECT_Ycm::INTERSECT_XY
margin外边距,将当前矩形的四边界向外扩展或向内缩小 margin 个单位后,判断待判断矩形是否与当前矩形相交 默认值 0
is_include_boundaries是否包含矩形边界 默认值 false
返回
返回值
true给定矩形与当前矩形相交(根据外边距和是否包含边界的条件判定)
false给定矩形不与当前矩形相交(根据外边距和是否包含边界的条件判定)
作者
justliulong
日期
2023-12-03

在文件 rect.hpp598 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ IsPoint()

bool cm::Rect::IsPoint ( ) const
inline

判断矩形是否为一个点

该函数检查矩形的宽度和高度是否都为零,如果都为零,则表示矩形实际上是一个点。

返回
返回值
true矩形为一个点
false矩形不为点
作者
justliulong
日期
2023-12-03

在文件 rect.hpp514 行定义.

◆ operator cv::Rect()

cm::Rect::operator cv::Rect ( ) const
inline

将矩形类转换为 OpenCV 的 cv::Rect 类型

该该类型转换函数允许将矩形类对象转换为相应的 OpenCV 的 cv::Rect 对象,以便与 OpenCV 库进行无缝集成和交互。

返回
转换后的 OpenCV cv::Rect 对象
作者
justliulong
日期
2023-12-03

在文件 rect.hpp308 行定义.

◆ operator cv::Vec4i()

cm::Rect::operator cv::Vec4i ( ) const
inline

将矩形类转换为 OpenCV 的 cv::Vec4i 类型

该类型转换函数允许将矩形类对象转换为相应的 OpenCV 的 cv::Vec4i 对象,以便与 OpenCV 库进行无缝集成和交互。

返回
转换后的 OpenCV cv::Vec4i 对象
作者
dreamy-xay
日期
2023-12-07

在文件 rect.hpp321 行定义.

◆ operator std::vector< int >()

cm::Rect::operator std::vector< int > ( ) const
inline

将矩形类转换为 std::vector<int> 类型

该类型转换函数允许将矩形类对象转换为相应的 std::vector<int> 对象,以便在需要使用 std::vector<int> 类型的场合下进行转换操作。

返回
转换后的 std::vector<int> 对象
作者
justliulong
日期
2024-05-20

在文件 rect.hpp334 行定义.

◆ Scale() [1/2]

Rect & cm::Rect::Scale ( const Margin & margin)
inline

矩形缩放

根据给定的外边距对象,以矩形中心点为基准对矩形进行缩放操作,调整矩形的位置和大小。

参数
margin外边距
返回
类自身引用,方便链式调用
作者
justliulong
日期
2023-12-03

在文件 rect.hpp838 行定义.

◆ Scale() [2/2]

Rect & cm::Rect::Scale ( double factor)
inline

矩形缩放

根据给定的缩放因子,对矩形进行缩放操作(根据笛卡尔坐标系),包括横纵坐标和宽高的缩放。

参数
factor缩放因子
返回
类自身引用,方便链式调用
作者
justliulong
日期
2023-12-03

在文件 rect.hpp818 行定义.

◆ TidyRect()

Rect & cm::Rect::TidyRect ( )
inline

整理矩形

通过调整矩形的位置和大小,确保矩形已知的点是左上角点,同时宽高均为正数。

返回
类自身引用,方便链式调用
作者
justliulong
日期
2023-12-03

在文件 rect.hpp856 行定义.

这是这个函数的调用关系图:

◆ Translate()

Rect & cm::Rect::Translate ( int dx,
int dy )
inline

矩形平移

根据给定的横向和纵向偏移量,对矩形进行平移操作。

参数
dx矩形横向偏移量
dy矩形纵向偏移量
返回
类自身引用,方便链式调用
作者
justliulong
日期
2023-12-03

在文件 rect.hpp801 行定义.

◆ Union()

Rect cm::Rect::Union ( const Rect & rect) const
inline

计算两个矩形的并集

将自身矩形与给定矩形进行合并,得到包含两个矩形的最小矩形,并返回该合并矩形。

参数
rect给定的矩形
返回
自身矩形与所给顶矩形的合并矩形
作者
justliulong
日期
2023-12-04

在文件 rect.hpp748 行定义.

函数调用图:

友元及相关函数文档

◆ operator!=

bool operator!= ( const Rect & rect1,
const Rect & rect2 )
friend

矩形类重载不等于号

该重载函数用于比较两个矩形对象是否不相等。

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
false两个矩形对象中左上角 x , y ,宽和高中至少有一个不相等
false两个矩形对象的坐标和尺寸均相等
作者
justliulong
日期
2023-12-03

在文件 rect.hpp370 行定义.

◆ operator<

bool operator< ( const Rect & rect1,
const Rect & rect2 )
friend

矩形类重载小于号

该重载函数用于比较两个矩形对象的大小关系。

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
true第一个矩形对象严格小于第二个矩形对象
false第一个矩形对象不严格小于第二个矩形对象
注解
比较顺序是首先按照 x 轴,然后是 y 轴,接着是宽度和高度。一旦发现在任何一个维度上 rect1 小于 rect2,则判定 rect1 小于 rect2。
作者
justliulong
日期
2023-12-03

在文件 rect.hpp390 行定义.

◆ operator<<

std::ostream & operator<< ( std::ostream & out,
const Rect & rect )
friend

矩形类重载输出流运算符

此操作符允许将矩形对象的内容以文本形式输出到输出流中,如控制台或文件。

参数
out输出流对象,例如std::cout
rect要输出的矩形对象
返回
输出流对象out,允许链式调用
作者
justliulong
日期
2023-12-03

在文件 rect.hpp498 行定义.

◆ operator<=

bool operator<= ( const Rect & rect1,
const Rect & rect2 )
friend

矩形类重载小于等于号

该重载函数用于比较两个矩形对象的大小关系。

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
true如果第一个矩形对象在所有维度上都不大于第二个矩形对象
false如果第一个矩形对象在任何维度上大于第二个矩形对象
注解
比较顺序是首先按照 x 轴,然后是 y 轴,接着是宽度和高度。一旦发现在任何一个维度上 rect1 小于等于 rect2,则判定 rect1 小于等于 rect2。
作者
justliulong
日期
2023-12-03

在文件 rect.hpp446 行定义.

◆ operator==

bool operator== ( const Rect & rect1,
const Rect & rect2 )
friend

矩形类重载等于号

该重载函数用于比较两个矩形对象是否相等。如果两个矩形对象的坐标和尺寸均相等,则返回true;否则返回false

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
true两个矩形对象的坐标和尺寸均相等
false两个矩形对象中左上角坐标宽和高中至少有一个不相等
作者
justliulong
日期
2023-12-03

在文件 rect.hpp352 行定义.

◆ operator>

bool operator> ( const Rect & rect1,
const Rect & rect2 )
friend

矩形类重载大于号

该重载函数用于比较两个矩形对象的大小关系。

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
true第一个矩形对象严格大于第二个矩形对象
false第一个矩形对象不严格大于第二个矩形对象
注解
比较顺序是首先按照 x 轴,然后是 y 轴,接着是宽度和高度。一旦发现在任何一个维度上 rect1 大于 rect2,则判定 rect1 大于 rect2。
作者
justliulong
日期
2023-12-03

在文件 rect.hpp418 行定义.

◆ operator>=

bool operator>= ( const Rect & rect1,
const Rect & rect2 )
friend

矩形类重载大于等于号

该重载函数用于比较两个矩形对象的大小关系。

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
true如果第一个矩形对象在所有维度上都不小于第二个矩形对象
false如果第一个矩形对象在任何维度上小于第二个矩形对象
注解
比较顺序是首先按照 x 轴,然后是 y 轴,接着是宽度和高度。一旦发现在任何一个维度上 rect1 大于等于 rect2,则判定 rect1 大于等于 rect2。
作者
justliulong
日期
2023-12-03

在文件 rect.hpp474 行定义.

类成员变量说明

◆ height

int cm::Rect::height

矩形的高度

在文件 rect.hpp40 行定义.

◆ width

int cm::Rect::width

矩形的宽度

在文件 rect.hpp38 行定义.

◆ x

int cm::Rect::x

矩形的左上角 x 坐标(仅当矩形宽高为正数时)

在文件 rect.hpp34 行定义.

◆ y

int cm::Rect::y

矩形的左上角 y 坐标(仅当矩形宽高为正数时)

在文件 rect.hpp36 行定义.


该类的文档由以下文件生成: