表格线识别通用库文档
载入中...
搜索中...
未找到
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
15#include "common/enum.h"
17#include "common/list/lines.hpp"
18#include "common/macro.h"
19#include "common/type.h"
20
21namespace cm {
22
23/* 竖线类前向声明 */
24class VLines;
25
33class 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
47 double AvgHeight(Interval index_range = Interval::All(), bool is_order = true);
50 HLines& RmFreeHLines(const VLines& vlines, int threshold = 2);
51};
52
53} // namespace cm
54
55#endif
横线列表类
Definition hlines.h:33
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
HLines(const HLines &hlines)=default
横线列表类的带参构造函数
HLines()=default
横线列表类的默认构造函数
double AvgHeight(Interval index_range=Interval::All(), bool is_order=true)
计算给定索引范围内横线的平均行高
Definition hlines.cpp:137
HLines & RmFreeHLines(const VLines &vlines, int threshold=2)
删除游离横线
Definition hlines.cpp:381
int FindNearLine(int postion, RelativePosition rp=NEAR)
定位满足条件的线
Definition hlines.cpp:51
HLines & OptimizeIntersections(const VLines &vlines, size_t threshold=0)
交点优化
Definition hlines.cpp:291
~HLines()=default
横线列表类的析构函数
区间类
Definition interval.hpp:29
static Interval All()
获取表示全范围的区间
Definition interval.hpp:493
线类
Definition line.hpp:31
线列表类
Definition lines.hpp:34
Lines()=default
线列表类的默认构造函数
点类
Definition point.hpp:52
RelativePosition
相对位置枚举
Definition enum.h:100
@ NEAR
最接近参考值的值(最靠近参考位置,不区分前后)
Definition enum.h:106
Position
位置枚举
Definition enum.h:84