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)
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)