Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleOCR
提交
d314008f
P
PaddleOCR
项目概览
PaddlePaddle
/
PaddleOCR
大约 1 年 前同步成功
通知
1528
Star
32962
Fork
6643
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
108
列表
看板
标记
里程碑
合并请求
7
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleOCR
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
108
Issue
108
列表
看板
标记
里程碑
合并请求
7
合并请求
7
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
d314008f
编写于
11月 01, 2022
作者:
D
Double_V
提交者:
GitHub
11月 01, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support min_area_rect crop (#8127)
上级
1af190ed
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
2 deletion
+28
-2
tools/infer/predict_system.py
tools/infer/predict_system.py
+5
-2
tools/infer/utility.py
tools/infer/utility.py
+23
-0
未找到文件。
tools/infer/predict_system.py
浏览文件 @
d314008f
...
...
@@ -34,7 +34,7 @@ import tools.infer.predict_det as predict_det
import
tools.infer.predict_cls
as
predict_cls
from
ppocr.utils.utility
import
get_image_file_list
,
check_and_read
from
ppocr.utils.logging
import
get_logger
from
tools.infer.utility
import
draw_ocr_box_txt
,
get_rotate_crop_image
from
tools.infer.utility
import
draw_ocr_box_txt
,
get_rotate_crop_image
,
get_minarea_rect_crop
logger
=
get_logger
()
...
...
@@ -80,7 +80,10 @@ class TextSystem(object):
for
bno
in
range
(
len
(
dt_boxes
)):
tmp_box
=
copy
.
deepcopy
(
dt_boxes
[
bno
])
img_crop
=
get_rotate_crop_image
(
ori_im
,
tmp_box
)
if
self
.
args
.
det_box_type
==
"quad"
:
img_crop
=
get_rotate_crop_image
(
ori_im
,
tmp_box
)
else
:
img_crop
=
get_minarea_rect_crop
(
ori_im
,
tmp_box
)
img_crop_list
.
append
(
img_crop
)
if
self
.
use_angle_cls
and
cls
:
img_crop_list
,
angle_list
,
elapse
=
self
.
text_classifier
(
...
...
tools/infer/utility.py
浏览文件 @
d314008f
...
...
@@ -629,6 +629,29 @@ def get_rotate_crop_image(img, points):
return
dst_img
def
get_minarea_rect_crop
(
img
,
points
):
bounding_box
=
cv2
.
minAreaRect
(
np
.
array
(
points
).
astype
(
np
.
int32
))
points
=
sorted
(
list
(
cv2
.
boxPoints
(
bounding_box
)),
key
=
lambda
x
:
x
[
0
])
index_a
,
index_b
,
index_c
,
index_d
=
0
,
1
,
2
,
3
if
points
[
1
][
1
]
>
points
[
0
][
1
]:
index_a
=
0
index_d
=
1
else
:
index_a
=
1
index_d
=
0
if
points
[
3
][
1
]
>
points
[
2
][
1
]:
index_b
=
2
index_c
=
3
else
:
index_b
=
3
index_c
=
2
box
=
[
points
[
index_a
],
points
[
index_b
],
points
[
index_c
],
points
[
index_d
]]
crop_img
=
get_rotate_crop_image
(
img
,
np
.
array
(
box
))
return
crop_img
def
check_gpu
(
use_gpu
):
if
use_gpu
and
not
paddle
.
is_compiled_with_cuda
():
use_gpu
=
False
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录