1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- # @Author : lightXu
- # @File : segment.py
- import os
- import xml.etree.cElementTree as ET
- from segment.image_operation import utils
- def joint_image(raw_img_path, bbox, lines_list):
- lines_dir = raw_img_path.replace('.jpg', '_lines')
- lines_file_list = os.listdir(lines_dir)
- lines_file_list = sorted([ele.replace('jpg', '')
- for ele in lines_file_list if ele.endswith('.jpg')])
- exam_items_bbox = []
- tree = ET.parse(r'./segment/exam_info/000000-template.xml') # xml tree
- for index_num, j in enumerate(lines_list):
- if j[1] == j[0]:
- continue
- elif j[1] - j[0] == 1:
- index_list = lines_file_list[j[0]].split('_')
- y_low = int(index_list[0])
- y_high = int(index_list[1])
- x_low = int(index_list[2])
- x_high = int(index_list[3])
- else:
- index_list0 = lines_file_list[j[0]].split('_') # [33, 37]
- index_list1 = lines_file_list[j[1] - 1].split('_')
- y_low = int(index_list0[0])
- y_high = int(index_list1[1])
- tmp_x_low_list = [ele.split('_')[2]
- for ele in lines_file_list[j[0]:j[1]]]
- tmp_x_high_list = [ele.split('_')[3]
- for ele in lines_file_list[j[0]:j[1]]]
- x_low = int(min(tmp_x_low_list))
- x_high = int(max(tmp_x_high_list))
- exam_bbox = [bbox[2] + x_low, bbox[0] + y_low, bbox[2] + x_high, bbox[0] + y_high]
- tree = utils.create_xml('{:02d}'.format(index_num), tree,
- exam_bbox[0], exam_bbox[1], exam_bbox[2], exam_bbox[3])
- exam_items_bbox.append(exam_bbox)
- # print(exam_items_bbox)
- tree.write(raw_img_path.replace('.jpg', '.xml'))
- return exam_items_bbox
|