예제 #1
0
def save(index, org, binary, corners_block, corners_img, corners_compo,
         compos_class, corners_text):

    out_img_gradient = pyjoin(C.ROOT_IMG_GRADIENT, index + '.png')
    out_img_draw = pyjoin(C.ROOT_IMG_DRAWN, index + '.png')
    out_img_clean = pyjoin(C.ROOT_IMG_CLEAN, index + '.png')
    out_label = pyjoin(C.ROOT_LABEL, index + '.json')

    # *** Step 7 *** post-processing: remove img elements from original image and segment into smaller size
    img_clean = draw.draw_bounding_box(org,
                                       corners_img,
                                       color=(255, 255, 255),
                                       line=-1)
    # draw results
    draw_bounding = draw.draw_bounding_box_class(org, corners_compo,
                                                 compos_class)
    draw_bounding = draw.draw_bounding_box_class(
        draw_bounding, corners_block,
        ['block' for i in range(len(corners_block))])
    draw_bounding = draw.draw_bounding_box_class(
        draw_bounding, corners_img, ['img' for i in range(len(corners_img))])
    draw_bounding = draw.draw_bounding_box(draw_bounding, corners_text, line=1)
    # save results
    cv2.imwrite(out_img_gradient, binary)
    cv2.imwrite(out_img_draw, draw_bounding)
    cv2.imwrite(out_img_clean, img_clean)
    file.save_corners_json(out_label, corners_block,
                           ['div' for i in range(len(corners_block))])
    file.save_corners_json(out_label, corners_img,
                           ['div' for i in range(len(corners_img))])
    file.save_corners_json(out_label, corners_compo, compos_class)
    if is_clip:
        file.save_clipping(org, C.ROOT_IMG_COMPONENT, corners_compo,
                           compos_class, compo_index)
def save(org, binary, corners_block, corners_img, corners_compo, compos_class,
         output_path_label, output_path_img_drawn, output_path_img_bin):
    # *** Step 7 *** post-processing: remove img elements from original image and segment into smaller size
    # draw results
    draw_bounding = draw.draw_bounding_box_class(org, corners_compo,
                                                 compos_class)
    draw_bounding = draw.draw_bounding_box_class(
        draw_bounding, corners_block,
        ['block' for i in range(len(corners_block))])
    draw_bounding = draw.draw_bounding_box_class(
        draw_bounding, corners_img, ['img' for i in range(len(corners_img))])
    # save results
    binary_r = pre.reverse_binary(binary)
    cv2.imwrite('data/output/org.png', org)
    cv2.imwrite('data/output/gradient_r.png', binary_r)
    cv2.imwrite(output_path_img_bin, binary)
    cv2.imwrite(output_path_img_drawn, draw_bounding)
    file.save_corners_json(output_path_label,
                           corners_compo,
                           compos_class,
                           new=True)
    file.save_corners_json(output_path_label,
                           corners_block,
                           ['block' for i in range(len(corners_block))],
                           new=False)
    file.save_corners_json(output_path_label,
                           corners_img,
                           ['img' for i in range(len(corners_img))],
                           new=False)
예제 #3
0
def save(org, binary, corners_block, corners_img, corners_compo, compos_class,
         corners_text):
    # *** Step 7 *** post-processing: remove img elements from original image and segment into smaller size
    # draw results
    draw_bounding = draw.draw_bounding_box_class(org, corners_compo,
                                                 compos_class)
    draw_bounding = draw.draw_bounding_box_class(
        draw_bounding, corners_block,
        ['block' for i in range(len(corners_block))])
    draw_bounding = draw.draw_bounding_box_class(
        draw_bounding, corners_img, ['img' for i in range(len(corners_img))])
    draw_bounding = draw.draw_bounding_box(draw_bounding, corners_text, line=1)
    # save results
    binary_r = pre.reverse_binary(binary)
    cv2.imwrite('output/org.png', org)
    cv2.imwrite('output/gradient_r.png', binary_r)
    cv2.imwrite('output/gradient.png', binary)
    cv2.imwrite('output/labeled.png', draw_bounding)
    file.save_corners_json('output/compo.json', corners_block,
                           ['div' for i in range(len(corners_block))])
    file.save_corners_json('output/compo.json', corners_img,
                           ['div' for i in range(len(corners_img))])
    file.save_corners_json('output/compo.json', corners_compo, compos_class)

    if is_clip:
        file.save_clipping(org, 'output/components', corners_compo,
                           compos_class, {})
                                   color=(255, 255, 255),
                                   line=-1)
if is_ocr:
    draw_bounding, word = ocr.text_detection(org, img_clean)
else:
    draw_bounding = org
img_clean = draw.draw_bounding_box(img_clean,
                                   corners_compo,
                                   color=(255, 255, 255),
                                   line=-1)

# *** Step 6 *** post-processing: remove img elements from original image and segment into smaller size
if is_segment:
    seg.segment_img(img_clean, 600, 'output/segment')
# draw results
draw_bounding = draw.draw_bounding_box_class(
    draw_bounding, corners_block, ['block' for i in range(len(corners_block))])
draw_bounding = draw.draw_bounding_box_class(
    draw_bounding, corners_img, ['img' for j in range(len(corners_img))])
draw_bounding = draw.draw_bounding_box_class(
    draw_bounding, corners_compo, ['compo' for j in range(len(corners_compo))])
draw_boundary = draw.draw_boundary(boundary_rec, org.shape)
# save results
if is_save:
    cv2.imwrite('output/org.png', org)
    cv2.imwrite('output/labeled.png', draw_bounding)
    cv2.imwrite('output/boundary.png', draw_boundary)
    cv2.imwrite('output/gradient.png', binary)
    cv2.imwrite('output/clean.png', img_clean)

end = file.timer(start)
                                       corners_img,
                                       color=(255, 255, 255),
                                       line=-1)
    if is_ocr:
        corners_word = ocr.text_detection(org, img_clean)
        corners_line = ocr.text_merge_into_line(org, corners_word)
        draw_bounding = draw.draw_bounding_box(org, corners_line, line=1)
    else:
        draw_bounding = org

    # *** Step 7 *** post-processing: remove img elements from original image and segment into smaller size
    if is_segment:
        seg.segment_img(img_clean, 600, 'output/segment')
    # draw results
    draw_bounding = draw.draw_bounding_box_class(
        draw_bounding, corners_block,
        ['block' for i in range(len(corners_block))], C.COLOR)
    draw_bounding = draw.draw_bounding_box_class(
        draw_bounding, corners_img, ['img' for j in range(len(corners_img))],
        C.COLOR)
    draw_bounding = draw.draw_bounding_box_class(draw_bounding, corners_compo,
                                                 compos_classes, C.COLOR)
    draw_boundary = draw.draw_boundary(boundary_rec, org.shape)
    # save results
    if is_save:
        cv2.imwrite(out_img_draw, draw_bounding)
        cv2.imwrite(out_img_gradient, binary)
        cv2.imwrite(out_img_clean, img_clean)
        # file.save_corners(out_label, corners_block, 'div')
        # file.save_corners(out_label, corners_img, 'img', False)