Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleOCR
提交
d218f8fb
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看板
提交
d218f8fb
编写于
6月 30, 2021
作者:
W
WenmuZhou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
del comment
上级
87a858e3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
1 addition
and
17 deletion
+1
-17
ppocr/data/imaug/copy_paste.py
ppocr/data/imaug/copy_paste.py
+1
-17
未找到文件。
ppocr/data/imaug/copy_paste.py
浏览文件 @
d218f8fb
...
@@ -164,34 +164,18 @@ def get_intersection(pD, pG):
...
@@ -164,34 +164,18 @@ def get_intersection(pD, pG):
def
rotate_bbox
(
img
,
text_polys
,
angle
,
scale
=
1
):
def
rotate_bbox
(
img
,
text_polys
,
angle
,
scale
=
1
):
"""
从给定的角度中选择一个角度,对图片和文本框进行旋转
:param img: 图片
:param text_polys: 文本框
:param degrees: 角度,可以是一个数值或者list
:param same_size: 是否保持和原图一样大
:return: 旋转后的图片和角度
"""
# ---------------------- 旋转图像 ----------------------
w
=
img
.
shape
[
1
]
w
=
img
.
shape
[
1
]
h
=
img
.
shape
[
0
]
h
=
img
.
shape
[
0
]
# 角度变弧度
rangle
=
np
.
deg2rad
(
angle
)
rangle
=
np
.
deg2rad
(
angle
)
# 计算旋转之后图像的w, h
nw
=
(
abs
(
np
.
sin
(
rangle
)
*
h
)
+
abs
(
np
.
cos
(
rangle
)
*
w
))
nw
=
(
abs
(
np
.
sin
(
rangle
)
*
h
)
+
abs
(
np
.
cos
(
rangle
)
*
w
))
nh
=
(
abs
(
np
.
cos
(
rangle
)
*
h
)
+
abs
(
np
.
sin
(
rangle
)
*
w
))
nh
=
(
abs
(
np
.
cos
(
rangle
)
*
h
)
+
abs
(
np
.
sin
(
rangle
)
*
w
))
# 构造仿射矩阵
rot_mat
=
cv2
.
getRotationMatrix2D
((
nw
*
0.5
,
nh
*
0.5
),
angle
,
scale
)
rot_mat
=
cv2
.
getRotationMatrix2D
((
nw
*
0.5
,
nh
*
0.5
),
angle
,
scale
)
# 计算原图中心点到新图中心点的偏移量
rot_move
=
np
.
dot
(
rot_mat
,
np
.
array
([(
nw
-
w
)
*
0.5
,
(
nh
-
h
)
*
0.5
,
0
]))
rot_move
=
np
.
dot
(
rot_mat
,
np
.
array
([(
nw
-
w
)
*
0.5
,
(
nh
-
h
)
*
0.5
,
0
]))
# 更新仿射矩阵
rot_mat
[
0
,
2
]
+=
rot_move
[
0
]
rot_mat
[
0
,
2
]
+=
rot_move
[
0
]
rot_mat
[
1
,
2
]
+=
rot_move
[
1
]
rot_mat
[
1
,
2
]
+=
rot_move
[
1
]
# ---------------------- 矫正bbox坐标 ----------------------
# ---------------------- rotate box ----------------------
# rot_mat是最终的旋转矩阵
# 获取原始bbox的四个中点,然后将这四个点转换到旋转后的坐标系下
rot_text_polys
=
list
()
rot_text_polys
=
list
()
for
bbox
in
text_polys
:
for
bbox
in
text_polys
:
point1
=
np
.
dot
(
rot_mat
,
np
.
array
([
bbox
[
0
,
0
],
bbox
[
0
,
1
],
1
]))
point1
=
np
.
dot
(
rot_mat
,
np
.
array
([
bbox
[
0
,
0
],
bbox
[
0
,
1
],
1
]))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录