mirror of
https://github.com/qurator-spk/eynollah.git
synced 2026-01-29 13:46:58 +01:00
mapregion is added to labels
This commit is contained in:
parent
c8240905a8
commit
30f39e7383
2 changed files with 70 additions and 4 deletions
|
|
@ -474,7 +474,7 @@ def visualize_layout_segmentation(xml_file, dir_xml, dir_out, dir_imgs):
|
|||
img_file_name_with_format = find_format_of_given_filename_in_dir(dir_imgs, f_name)
|
||||
img = cv2.imread(os.path.join(dir_imgs, img_file_name_with_format))
|
||||
|
||||
co_text, co_graphic, co_sep, co_img, co_table, co_noise, y_len, x_len = get_layout_contours_for_visualization(xml_file)
|
||||
co_text, co_graphic, co_sep, co_img, co_table, co_map, co_noise, y_len, x_len = get_layout_contours_for_visualization(xml_file)
|
||||
|
||||
|
||||
added_image = visualize_image_from_contours_layout(co_text['paragraph'], co_text['header']+co_text['heading'], co_text['drop-capital'], co_sep, co_img, co_text['marginalia'], co_table, img)
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ with warnings.catch_warnings():
|
|||
warnings.simplefilter("ignore")
|
||||
|
||||
|
||||
def visualize_image_from_contours_layout(co_par, co_header, co_drop, co_sep, co_image, co_marginal, co_table, img):
|
||||
def visualize_image_from_contours_layout(co_par, co_header, co_drop, co_sep, co_image, co_marginal, co_table, co_map, img):
|
||||
alpha = 0.5
|
||||
|
||||
blank_image = np.ones( (img.shape[:]), dtype=np.uint8) * 255
|
||||
|
|
@ -28,6 +28,7 @@ def visualize_image_from_contours_layout(co_par, co_header, co_drop, co_sep, co_
|
|||
col_sep = (255, 0, 0)
|
||||
col_marginal = (106, 90, 205)
|
||||
col_table = (0, 90, 205)
|
||||
col_map = (90, 90, 205)
|
||||
|
||||
if len(co_image)>0:
|
||||
cv2.drawContours(blank_image, co_image, -1, col_image, thickness=cv2.FILLED) # Fill the contour
|
||||
|
|
@ -53,6 +54,9 @@ def visualize_image_from_contours_layout(co_par, co_header, co_drop, co_sep, co_
|
|||
if len(co_table)>0:
|
||||
cv2.drawContours(blank_image, co_table, -1, col_table, thickness=cv2.FILLED) # Fill the contour
|
||||
|
||||
if len(co_map)>0:
|
||||
cv2.drawContours(blank_image, co_map, -1, col_map, thickness=cv2.FILLED) # Fill the contour
|
||||
|
||||
img_final =cv2.cvtColor(blank_image, cv2.COLOR_BGR2RGB)
|
||||
|
||||
added_image = cv2.addWeighted(img,alpha,img_final,1- alpha,0)
|
||||
|
|
@ -380,6 +384,7 @@ def get_layout_contours_for_visualization(xml_file):
|
|||
co_sep=[]
|
||||
co_img=[]
|
||||
co_table=[]
|
||||
co_map=[]
|
||||
co_noise=[]
|
||||
|
||||
types_text = []
|
||||
|
|
@ -597,6 +602,31 @@ def get_layout_contours_for_visualization(xml_file):
|
|||
break
|
||||
co_table.append(np.array(c_t_in))
|
||||
|
||||
if tag.endswith('}MapRegion') or tag.endswith('}mapregion'):
|
||||
#print('sth')
|
||||
for nn in root1.iter(tag):
|
||||
c_t_in=[]
|
||||
sumi=0
|
||||
for vv in nn.iter():
|
||||
# check the format of coords
|
||||
if vv.tag==link+'Coords':
|
||||
coords=bool(vv.attrib)
|
||||
if coords:
|
||||
p_h=vv.attrib['points'].split(' ')
|
||||
c_t_in.append( np.array( [ [ int(x.split(',')[0]) , int(x.split(',')[1]) ] for x in p_h] ) )
|
||||
break
|
||||
else:
|
||||
pass
|
||||
|
||||
|
||||
if vv.tag==link+'Point':
|
||||
c_t_in.append([ int(float(vv.attrib['x'])) , int(float(vv.attrib['y'])) ])
|
||||
sumi+=1
|
||||
#print(vv.tag,'in')
|
||||
elif vv.tag!=link+'Point' and sumi>=1:
|
||||
break
|
||||
co_map.append(np.array(c_t_in))
|
||||
|
||||
|
||||
if tag.endswith('}NoiseRegion') or tag.endswith('}noiseregion'):
|
||||
#print('sth')
|
||||
|
|
@ -622,7 +652,7 @@ def get_layout_contours_for_visualization(xml_file):
|
|||
elif vv.tag!=link+'Point' and sumi>=1:
|
||||
break
|
||||
co_noise.append(np.array(c_t_in))
|
||||
return co_text, co_graphic, co_sep, co_img, co_table, co_noise, y_len, x_len
|
||||
return co_text, co_graphic, co_sep, co_img, co_table, co_map, co_noise, y_len, x_len
|
||||
|
||||
def get_images_of_ground_truth(gt_list, dir_in, output_dir, output_type, config_file, config_params, printspace, dir_images, dir_out_images):
|
||||
"""
|
||||
|
|
@ -841,7 +871,7 @@ def get_images_of_ground_truth(gt_list, dir_in, output_dir, output_type, config_
|
|||
types_graphic_label = list(types_graphic_dict.values())
|
||||
|
||||
|
||||
labels_rgb_color = [ (0,0,0), (255,0,0), (255,125,0), (255,0,125), (125,255,125), (125,125,0), (0,125,255), (0,125,0), (125,125,125), (255,0,255), (125,0,125), (0,255,0),(0,0,255), (0,255,255), (255,125,125), (0,125,125), (0,255,125), (255,125,255), (125,255,0)]
|
||||
labels_rgb_color = [ (0,0,0), (255,0,0), (255,125,0), (255,0,125), (125,255,125), (125,125,0), (0,125,255), (0,125,0), (125,125,125), (255,0,255), (125,0,125), (0,255,0),(0,0,255), (0,255,255), (255,125,125), (0,125,125), (0,255,125), (255,125,255), (125,255,0), (125,255,255)]
|
||||
|
||||
|
||||
region_tags=np.unique([x for x in alltags if x.endswith('Region')])
|
||||
|
|
@ -852,6 +882,7 @@ def get_images_of_ground_truth(gt_list, dir_in, output_dir, output_type, config_
|
|||
co_sep=[]
|
||||
co_img=[]
|
||||
co_table=[]
|
||||
co_map=[]
|
||||
co_noise=[]
|
||||
|
||||
for tag in region_tags:
|
||||
|
|
@ -1063,6 +1094,32 @@ def get_images_of_ground_truth(gt_list, dir_in, output_dir, output_type, config_
|
|||
break
|
||||
co_table.append(np.array(c_t_in))
|
||||
|
||||
if 'mapregion' in keys:
|
||||
if tag.endswith('}MapRegion') or tag.endswith('}mapregion'):
|
||||
#print('sth')
|
||||
for nn in root1.iter(tag):
|
||||
c_t_in=[]
|
||||
sumi=0
|
||||
for vv in nn.iter():
|
||||
# check the format of coords
|
||||
if vv.tag==link+'Coords':
|
||||
coords=bool(vv.attrib)
|
||||
if coords:
|
||||
p_h=vv.attrib['points'].split(' ')
|
||||
c_t_in.append( np.array( [ [ int(x.split(',')[0]) , int(x.split(',')[1]) ] for x in p_h] ) )
|
||||
break
|
||||
else:
|
||||
pass
|
||||
|
||||
|
||||
if vv.tag==link+'Point':
|
||||
c_t_in.append([ int(float(vv.attrib['x'])) , int(float(vv.attrib['y'])) ])
|
||||
sumi+=1
|
||||
#print(vv.tag,'in')
|
||||
elif vv.tag!=link+'Point' and sumi>=1:
|
||||
break
|
||||
co_map.append(np.array(c_t_in))
|
||||
|
||||
if 'noiseregion' in keys:
|
||||
if tag.endswith('}NoiseRegion') or tag.endswith('}noiseregion'):
|
||||
#print('sth')
|
||||
|
|
@ -1135,6 +1192,10 @@ def get_images_of_ground_truth(gt_list, dir_in, output_dir, output_type, config_
|
|||
erosion_rate = 0#2
|
||||
dilation_rate = 3#4
|
||||
co_table, img_boundary = update_region_contours(co_table, img_boundary, erosion_rate, dilation_rate, y_len, x_len )
|
||||
if "mapregion" in elements_with_artificial_class:
|
||||
erosion_rate = 0#2
|
||||
dilation_rate = 3#4
|
||||
co_map, img_boundary = update_region_contours(co_map, img_boundary, erosion_rate, dilation_rate, y_len, x_len )
|
||||
|
||||
|
||||
|
||||
|
|
@ -1160,6 +1221,8 @@ def get_images_of_ground_truth(gt_list, dir_in, output_dir, output_type, config_
|
|||
img_poly=cv2.fillPoly(img, pts =co_img, color=labels_rgb_color[ config_params['imageregion']])
|
||||
if 'tableregion' in keys:
|
||||
img_poly=cv2.fillPoly(img, pts =co_table, color=labels_rgb_color[ config_params['tableregion']])
|
||||
if 'mapregion' in keys:
|
||||
img_poly=cv2.fillPoly(img, pts =co_map, color=labels_rgb_color[ config_params['mapregion']])
|
||||
if 'noiseregion' in keys:
|
||||
img_poly=cv2.fillPoly(img, pts =co_noise, color=labels_rgb_color[ config_params['noiseregion']])
|
||||
|
||||
|
|
@ -1220,6 +1283,9 @@ def get_images_of_ground_truth(gt_list, dir_in, output_dir, output_type, config_
|
|||
if 'tableregion' in keys:
|
||||
color_label = config_params['tableregion']
|
||||
img_poly=cv2.fillPoly(img, pts =co_table, color=(color_label,color_label,color_label))
|
||||
if 'mapregion' in keys:
|
||||
color_label = config_params['mapregion']
|
||||
img_poly=cv2.fillPoly(img, pts =co_map, color=(color_label,color_label,color_label))
|
||||
if 'noiseregion' in keys:
|
||||
color_label = config_params['noiseregion']
|
||||
img_poly=cv2.fillPoly(img, pts =co_noise, color=(color_label,color_label,color_label))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue