表格线识别通用库文档
载入中...
搜索中...
未找到
hlines.h
浏览该文件的文档.
1
/*
2
* @Description: 横线列表类 头文件
3
* @Version:
4
* @Autor: justliulong
5
* @date: 2023-12-05
6
* @LastEditors: dreamy-xay
7
* @LastEditTime: 2024-01-12
8
*/
9
#ifndef COMMON_HLINES_H
10
#define COMMON_HLINES_H
11
12
#include <algorithm>
13
14
#include "
common/debug/debug.hpp
"
15
#include "
common/enum.h
"
16
#include "
common/feature/vlines.h
"
17
#include "
common/list/lines.hpp
"
18
#include "
common/macro.h
"
19
#include "
common/type.h
"
20
21
namespace
cm
{
22
23
/* 竖线类前向声明 */
24
class
VLines;
25
33
class
HLines
:
public
Lines
{
34
public
:
35
using
Lines::Lines
;
36
38
HLines
() =
default
;
40
HLines
(
const
HLines
&
hlines
) =
default
;
41
HLines
(
const
std::initializer_list<Line>&
hlines
);
43
~HLines
() =
default
;
44
45
int
FindNearLine
(
int
postion
,
RelativePosition
rp
=
NEAR
);
46
int
FindNearLine
(
const
Line
&
line
,
RelativePosition
rp
=
NEAR
);
47
double
AvgHeight
(
Interval
index_range
=
Interval::All
(),
bool
is_order
=
true
);
48
HLines
&
ExtendLines
(
const
VLines
&
vlines
,
Position
extend_direction
,
size_t
start_hline_index
= 5,
double
threshold
= 0.7,
size_t
max_num_misaligned_lines
= 3,
bool
strict_inspect
=
true
);
49
HLines
&
OptimizeIntersections
(
const
VLines
&
vlines
,
size_t
threshold
= 0);
50
HLines
&
RmFreeHLines
(
const
VLines
&
vlines
,
int
threshold
= 2);
51
};
52
53
}
// namespace cm
54
55
#endif
cm::HLines
横线列表类
Definition
hlines.h:33
cm::HLines::ExtendLines
HLines & ExtendLines(const VLines &vlines, Position extend_direction, size_t start_hline_index=5, double threshold=0.7, size_t max_num_misaligned_lines=3, bool strict_inspect=true)
延长特殊横线
Definition
hlines.cpp:181
cm::HLines::HLines
HLines(const HLines &hlines)=default
横线列表类的带参构造函数
cm::HLines::HLines
HLines()=default
横线列表类的默认构造函数
cm::HLines::AvgHeight
double AvgHeight(Interval index_range=Interval::All(), bool is_order=true)
计算给定索引范围内横线的平均行高
Definition
hlines.cpp:137
cm::HLines::RmFreeHLines
HLines & RmFreeHLines(const VLines &vlines, int threshold=2)
删除游离横线
Definition
hlines.cpp:381
cm::HLines::FindNearLine
int FindNearLine(int postion, RelativePosition rp=NEAR)
定位满足条件的线
Definition
hlines.cpp:51
cm::HLines::OptimizeIntersections
HLines & OptimizeIntersections(const VLines &vlines, size_t threshold=0)
交点优化
Definition
hlines.cpp:291
cm::HLines::~HLines
~HLines()=default
横线列表类的析构函数
cm::Interval
区间类
Definition
interval.hpp:29
cm::Interval::All
static Interval All()
获取表示全范围的区间
Definition
interval.hpp:493
cm::Line
线类
Definition
line.hpp:31
cm::Lines
线列表类
Definition
lines.hpp:34
cm::Lines::Lines
Lines()=default
线列表类的默认构造函数
cm::Point
点类
Definition
point.hpp:52
cm::VLines
Definition
vlines.h:25
debug.hpp
enum.h
lines.hpp
macro.h
cm
Definition
disjoint_set.hpp:22
cm::RelativePosition
RelativePosition
相对位置枚举
Definition
enum.h:100
cm::NEAR
@ NEAR
最接近参考值的值(最靠近参考位置,不区分前后)
Definition
enum.h:106
cm::Position
Position
位置枚举
Definition
enum.h:84
type.h
vlines.h
common
include
common
feature
hlines.h
制作者
1.10.0