Commit 012a8f15 authored by 赵小蒙's avatar 赵小蒙

修复多栏模式下lines可能为空导致的异常

parent a5f8de98
...@@ -32,7 +32,7 @@ def adjust_layouts(layout_bboxes): ...@@ -32,7 +32,7 @@ def adjust_layouts(layout_bboxes):
# 遍历当前布局框之后的布局框 # 遍历当前布局框之后的布局框
for j in range(i + 1, len(layout_bboxes)): for j in range(i + 1, len(layout_bboxes)):
# 判断两个布局框是否重叠 # 判断两个布局框是否重叠
if _is_part_overlap(layout_bboxes[i], layout_bboxes[j]): if _is_part_overlap(layout_bboxes[i]["layout_bbox"], layout_bboxes[j]["layout_bbox"]):
# 计算每个布局框的中心点坐标和面积 # 计算每个布局框的中心点坐标和面积
center_i = get_center_point(layout_bboxes[i]["layout_bbox"]) center_i = get_center_point(layout_bboxes[i]["layout_bbox"])
area_i = get_area(layout_bboxes[i]["layout_bbox"]) area_i = get_area(layout_bboxes[i]["layout_bbox"])
......
...@@ -75,15 +75,17 @@ def merge_spans_to_line_by_layout(spans, layout_bboxes): ...@@ -75,15 +75,17 @@ def merge_spans_to_line_by_layout(spans, layout_bboxes):
for span in spans: for span in spans:
if calculate_overlap_area_in_bbox1_area_ratio(span['bbox'], layout_bbox) > 0.8: if calculate_overlap_area_in_bbox1_area_ratio(span['bbox'], layout_bbox) > 0.8:
layout_sapns.append(span) layout_sapns.append(span)
new_spans.append(layout_sapns) # 如果layout_sapns不为空,则放入new_spans中
if len(layout_sapns) > 0:
new_spans.append(layout_sapns)
# 从spans删除已经放入layout_sapns中的span
for layout_sapn in layout_sapns:
spans.remove(layout_sapn)
# 从spans删除已经放入layout_sapns中的span if len(new_spans) > 0:
for layout_sapn in layout_sapns: for layout_sapns in new_spans:
spans.remove(layout_sapn) layout_lines = merge_spans_to_line(layout_sapns)
lines.extend(layout_lines)
for layout_sapns in new_spans:
layout_lines = merge_spans_to_line(layout_sapns)
lines.extend(layout_lines)
#对line中的span进行排序 #对line中的span进行排序
lines = line_sort_spans_by_left_to_right(lines) lines = line_sort_spans_by_left_to_right(lines)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment