Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_41840029
PaddleOCR
提交
f1d0c8a2
P
PaddleOCR
项目概览
weixin_41840029
/
PaddleOCR
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleOCR
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleOCR
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f1d0c8a2
编写于
5月 05, 2022
作者:
qq_25193841
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Auto stash before merge of "table" and "origin/new"
上级
1e6af3bb
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
59 addition
and
4 deletion
+59
-4
PPOCRLabel/PPOCRLabel.py
PPOCRLabel/PPOCRLabel.py
+15
-4
PPOCRLabel/libs/utils.py
PPOCRLabel/libs/utils.py
+44
-0
未找到文件。
PPOCRLabel/PPOCRLabel.py
浏览文件 @
f1d0c8a2
...
...
@@ -21,6 +21,7 @@ import os.path
import
platform
import
subprocess
import
sys
import
xlrd
from
functools
import
partial
from
PyQt5.QtCore
import
QSize
,
Qt
,
QPoint
,
QByteArray
,
QTimer
,
QFileInfo
,
QPointF
,
QProcess
...
...
@@ -2349,9 +2350,19 @@ class MainWindow(QMainWindow):
return
# read xlsx file, convert to HTML
xd
=
pd
.
ExcelFile
(
csv_path
)
df
=
xd
.
parse
()
structure
=
df
.
to_html
(
index
=
False
)
# xd = pd.ExcelFile(csv_path)
# df = xd.parse()
# structure = df.to_html(index = False)
excel
=
xlrd
.
open_workbook
(
csv_path
)
sheet0
=
excel
.
sheet_by_index
(
0
)
# only sheet 0
merged_cells
=
sheet0
.
merged_cells
# (0,1,1,3) start row, end row, start col, end col
html_list
=
[[
'td'
]
*
sheet0
.
ncols
for
i
in
range
(
sheet0
.
nrows
)]
for
merged
in
merged_cells
:
html_list
=
expand_list
(
merged
,
html_list
)
token_list
=
convert_token
(
html_list
)
# load box annotations
cells
=
[]
...
...
@@ -2370,7 +2381,7 @@ class MainWindow(QMainWindow):
split
=
'test'
# save dict
html
=
{
'structure'
:
{
'tokens'
:
structure
},
'cell'
:
cells
}
html
=
{
'structure'
:
{
'tokens'
:
token_list
},
'cell'
:
cells
}
json_results
.
append
({
'filename'
:
filename
,
'split'
:
split
,
'imgid'
:
imgid
,
'html'
:
html
})
imgid
+=
1
...
...
PPOCRLabel/libs/utils.py
浏览文件 @
f1d0c8a2
...
...
@@ -188,6 +188,50 @@ def OBB2HBB(obb) -> np.array:
return
hbb
def
expand_list
(
merged
,
html_list
):
'''
Fill blanks according to merged cells
'''
sr
,
er
,
sc
,
ec
=
merged
for
i
in
range
(
sr
,
er
):
for
j
in
range
(
sc
,
ec
):
html_list
[
i
][
j
]
=
None
html_list
[
sr
][
sc
]
=
''
if
ec
-
sc
>
1
:
html_list
[
sr
][
sc
]
+=
" colspan={}"
.
format
(
ec
-
sc
)
if
er
-
sr
>
1
:
html_list
[
sr
][
sc
]
+=
" rowspan={}"
.
format
(
er
-
sr
)
return
html_list
def
convert_token
(
html_list
):
'''
Convert raw html to label format
'''
token_list
=
[
"<tbody>"
]
# final html list:
for
row
in
html_list
:
token_list
.
append
(
"<tr>"
)
for
col
in
row
:
if
col
==
None
:
continue
elif
col
==
'td'
:
token_list
.
extend
([
"<td>"
,
"</td>"
])
else
:
token_list
.
append
(
"<td"
)
if
'colspan'
in
col
:
_
,
n
=
col
.
split
(
'colspan='
)
token_list
.
append
(
" colspan=
\"
{}
\"
"
.
format
(
n
))
if
'rowspan'
in
col
:
_
,
n
=
col
.
split
(
'rowspan='
)
token_list
.
append
(
" rowspan=
\"
{}
\"
"
.
format
(
n
))
token_list
.
append
(
">"
)
token_list
.
append
(
"</tr>"
)
token_list
.
append
(
"</tbody>"
)
return
token_list
def
stepsInfo
(
lang
=
'en'
):
if
lang
==
'ch'
:
msg
=
"1. 安装与运行:使用上述命令安装与运行程序。
\n
"
\
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录