mirror of
https://github.com/qurator-spk/eynollah.git
synced 2025-06-08 11:49:55 +02:00
resolving issue #110 in a better way
This commit is contained in:
parent
0f87974b0c
commit
c3a4a1bba7
1 changed files with 37 additions and 24 deletions
|
@ -2357,7 +2357,6 @@ class Eynollah:
|
||||||
arg_text_con = []
|
arg_text_con = []
|
||||||
for ii in range(len(cx_text_only)):
|
for ii in range(len(cx_text_only)):
|
||||||
for jj in range(len(boxes)):
|
for jj in range(len(boxes)):
|
||||||
print(cx_text_only[ii],cy_text_only[ii],'markaz')
|
|
||||||
if cx_text_only[ii] >= boxes[jj][0] and cx_text_only[ii] < boxes[jj][1] and cy_text_only[ii] >= boxes[jj][2] and cy_text_only[ii] < boxes[jj][3]: # this is valid if the center of region identify in which box it is located
|
if cx_text_only[ii] >= boxes[jj][0] and cx_text_only[ii] < boxes[jj][1] and cy_text_only[ii] >= boxes[jj][2] and cy_text_only[ii] < boxes[jj][3]: # this is valid if the center of region identify in which box it is located
|
||||||
arg_text_con.append(jj)
|
arg_text_con.append(jj)
|
||||||
break
|
break
|
||||||
|
@ -3624,6 +3623,9 @@ class Eynollah:
|
||||||
textline_contour[:,0] = textline_contour[:,0] + box_ind[2]
|
textline_contour[:,0] = textline_contour[:,0] + box_ind[2]
|
||||||
textline_contour[:,1] = textline_contour[:,1] + box_ind[0]
|
textline_contour[:,1] = textline_contour[:,1] + box_ind[0]
|
||||||
return textline_contour
|
return textline_contour
|
||||||
|
def return_list_of_contours_with_desired_order(self, ls_cons, sorted_indexes):
|
||||||
|
return [ls_cons[sorted_indexes[index]] for index in range(len(sorted_indexes))]
|
||||||
|
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
"""
|
"""
|
||||||
|
@ -3735,11 +3737,15 @@ class Eynollah:
|
||||||
contours_only_text_parent = [c for jz, c in enumerate(contours_only_text_parent) if areas_cnt_text[jz] > MIN_AREA_REGION]
|
contours_only_text_parent = [c for jz, c in enumerate(contours_only_text_parent) if areas_cnt_text[jz] > MIN_AREA_REGION]
|
||||||
areas_cnt_text_parent = [area for area in areas_cnt_text if area > MIN_AREA_REGION]
|
areas_cnt_text_parent = [area for area in areas_cnt_text if area > MIN_AREA_REGION]
|
||||||
index_con_parents = np.argsort(areas_cnt_text_parent)
|
index_con_parents = np.argsort(areas_cnt_text_parent)
|
||||||
try:
|
|
||||||
contours_only_text_parent = list(np.array(contours_only_text_parent,dtype=object)[index_con_parents])
|
contours_only_text_parent = self.return_list_of_contours_with_desired_order(contours_only_text_parent, index_con_parents)
|
||||||
except:
|
|
||||||
contours_only_text_parent = list(np.array(contours_only_text_parent,dtype=np.int32)[index_con_parents])
|
##try:
|
||||||
areas_cnt_text_parent = list(np.array(areas_cnt_text_parent)[index_con_parents])
|
##contours_only_text_parent = list(np.array(contours_only_text_parent,dtype=object)[index_con_parents])
|
||||||
|
##except:
|
||||||
|
##contours_only_text_parent = list(np.array(contours_only_text_parent,dtype=np.int32)[index_con_parents])
|
||||||
|
##areas_cnt_text_parent = list(np.array(areas_cnt_text_parent)[index_con_parents])
|
||||||
|
areas_cnt_text_parent = self.return_list_of_contours_with_desired_order(areas_cnt_text_parent, index_con_parents)
|
||||||
|
|
||||||
cx_bigest_big, cy_biggest_big, _, _, _, _, _ = find_new_features_of_contours([contours_biggest])
|
cx_bigest_big, cy_biggest_big, _, _, _, _, _ = find_new_features_of_contours([contours_biggest])
|
||||||
cx_bigest, cy_biggest, _, _, _, _, _ = find_new_features_of_contours(contours_only_text_parent)
|
cx_bigest, cy_biggest, _, _, _, _, _ = find_new_features_of_contours(contours_only_text_parent)
|
||||||
|
@ -3753,12 +3759,14 @@ class Eynollah:
|
||||||
if len(areas_cnt_text_d)>0:
|
if len(areas_cnt_text_d)>0:
|
||||||
contours_biggest_d = contours_only_text_parent_d[np.argmax(areas_cnt_text_d)]
|
contours_biggest_d = contours_only_text_parent_d[np.argmax(areas_cnt_text_d)]
|
||||||
index_con_parents_d = np.argsort(areas_cnt_text_d)
|
index_con_parents_d = np.argsort(areas_cnt_text_d)
|
||||||
try:
|
contours_only_text_parent_d = self.return_list_of_contours_with_desired_order(contours_only_text_parent_d, index_con_parents_d)
|
||||||
contours_only_text_parent_d = list(np.array(contours_only_text_parent_d,dtype=object)[index_con_parents_d])
|
#try:
|
||||||
except:
|
#contours_only_text_parent_d = list(np.array(contours_only_text_parent_d,dtype=object)[index_con_parents_d])
|
||||||
contours_only_text_parent_d = list(np.array(contours_only_text_parent_d,dtype=np.int32)[index_con_parents_d])
|
#except:
|
||||||
|
#contours_only_text_parent_d = list(np.array(contours_only_text_parent_d,dtype=np.int32)[index_con_parents_d])
|
||||||
|
|
||||||
areas_cnt_text_d = list(np.array(areas_cnt_text_d)[index_con_parents_d])
|
#areas_cnt_text_d = list(np.array(areas_cnt_text_d)[index_con_parents_d])
|
||||||
|
areas_cnt_text_d = self.return_list_of_contours_with_desired_order(areas_cnt_text_d, index_con_parents_d)
|
||||||
|
|
||||||
cx_bigest_d_big, cy_biggest_d_big, _, _, _, _, _ = find_new_features_of_contours([contours_biggest_d])
|
cx_bigest_d_big, cy_biggest_d_big, _, _, _, _, _ = find_new_features_of_contours([contours_biggest_d])
|
||||||
cx_bigest_d, cy_biggest_d, _, _, _, _, _ = find_new_features_of_contours(contours_only_text_parent_d)
|
cx_bigest_d, cy_biggest_d, _, _, _, _, _ = find_new_features_of_contours(contours_only_text_parent_d)
|
||||||
|
@ -3820,11 +3828,14 @@ class Eynollah:
|
||||||
areas_cnt_text_parent = [area for area in areas_cnt_text if area > MIN_AREA_REGION]
|
areas_cnt_text_parent = [area for area in areas_cnt_text if area > MIN_AREA_REGION]
|
||||||
|
|
||||||
index_con_parents = np.argsort(areas_cnt_text_parent)
|
index_con_parents = np.argsort(areas_cnt_text_parent)
|
||||||
try:
|
|
||||||
contours_only_text_parent = list(np.array(contours_only_text_parent,dtype=object)[index_con_parents])
|
contours_only_text_parent = self.return_list_of_contours_with_desired_order(contours_only_text_parent, index_con_parents)
|
||||||
except:
|
#try:
|
||||||
contours_only_text_parent = list(np.array(contours_only_text_parent,dtype=np.int32)[index_con_parents])
|
#contours_only_text_parent = list(np.array(contours_only_text_parent,dtype=object)[index_con_parents])
|
||||||
areas_cnt_text_parent = list(np.array(areas_cnt_text_parent)[index_con_parents])
|
#except:
|
||||||
|
#contours_only_text_parent = list(np.array(contours_only_text_parent,dtype=np.int32)[index_con_parents])
|
||||||
|
#areas_cnt_text_parent = list(np.array(areas_cnt_text_parent)[index_con_parents])
|
||||||
|
areas_cnt_text_parent = self.return_list_of_contours_with_desired_order(areas_cnt_text_parent, index_con_parents)
|
||||||
|
|
||||||
cx_bigest_big, cy_biggest_big, _, _, _, _, _ = find_new_features_of_contours([contours_biggest])
|
cx_bigest_big, cy_biggest_big, _, _, _, _, _ = find_new_features_of_contours([contours_biggest])
|
||||||
cx_bigest, cy_biggest, _, _, _, _, _ = find_new_features_of_contours(contours_only_text_parent)
|
cx_bigest, cy_biggest, _, _, _, _, _ = find_new_features_of_contours(contours_only_text_parent)
|
||||||
|
@ -3865,10 +3876,11 @@ class Eynollah:
|
||||||
#print("text region early 6 in %.1fs", time.time() - t0)
|
#print("text region early 6 in %.1fs", time.time() - t0)
|
||||||
if self.full_layout:
|
if self.full_layout:
|
||||||
if np.abs(slope_deskew) >= SLOPE_THRESHOLD:
|
if np.abs(slope_deskew) >= SLOPE_THRESHOLD:
|
||||||
try:
|
contours_only_text_parent_d_ordered = self.return_list_of_contours_with_desired_order(contours_only_text_parent_d_ordered, index_by_text_par_con)
|
||||||
contours_only_text_parent_d_ordered = list(np.array(contours_only_text_parent_d_ordered, dtype=np.int32)[index_by_text_par_con])
|
#try:
|
||||||
except:
|
#contours_only_text_parent_d_ordered = list(np.array(contours_only_text_parent_d_ordered, dtype=np.int32)[index_by_text_par_con])
|
||||||
contours_only_text_parent_d_ordered = list(np.array(contours_only_text_parent_d_ordered, dtype=object)[index_by_text_par_con])
|
#except:
|
||||||
|
#contours_only_text_parent_d_ordered = list(np.array(contours_only_text_parent_d_ordered, dtype=object)[index_by_text_par_con])
|
||||||
if self.light_version:
|
if self.light_version:
|
||||||
text_regions_p, contours_only_text_parent, contours_only_text_parent_h, all_box_coord, all_box_coord_h, all_found_textline_polygons, all_found_textline_polygons_h, slopes, slopes_h, contours_only_text_parent_d_ordered, contours_only_text_parent_h_d_ordered = check_any_text_region_in_model_one_is_main_or_header_light(text_regions_p, regions_fully, contours_only_text_parent, all_box_coord, all_found_textline_polygons, slopes, contours_only_text_parent_d_ordered)
|
text_regions_p, contours_only_text_parent, contours_only_text_parent_h, all_box_coord, all_box_coord_h, all_found_textline_polygons, all_found_textline_polygons_h, slopes, slopes_h, contours_only_text_parent_d_ordered, contours_only_text_parent_h_d_ordered = check_any_text_region_in_model_one_is_main_or_header_light(text_regions_p, regions_fully, contours_only_text_parent, all_box_coord, all_found_textline_polygons, slopes, contours_only_text_parent_d_ordered)
|
||||||
else:
|
else:
|
||||||
|
@ -3958,10 +3970,11 @@ class Eynollah:
|
||||||
if np.abs(slope_deskew) < SLOPE_THRESHOLD:
|
if np.abs(slope_deskew) < SLOPE_THRESHOLD:
|
||||||
order_text_new, id_of_texts_tot = self.do_order_of_regions(contours_only_text_parent, contours_only_text_parent_h, boxes, textline_mask_tot)
|
order_text_new, id_of_texts_tot = self.do_order_of_regions(contours_only_text_parent, contours_only_text_parent_h, boxes, textline_mask_tot)
|
||||||
else:
|
else:
|
||||||
try:
|
contours_only_text_parent_d_ordered = self.return_list_of_contours_with_desired_order(contours_only_text_parent_d_ordered, index_by_text_par_con)
|
||||||
contours_only_text_parent_d_ordered = list(np.array(contours_only_text_parent_d_ordered, dtype=object)[index_by_text_par_con])
|
#try:
|
||||||
except:
|
#contours_only_text_parent_d_ordered = list(np.array(contours_only_text_parent_d_ordered, dtype=object)[index_by_text_par_con])
|
||||||
contours_only_text_parent_d_ordered = list(np.array(contours_only_text_parent_d_ordered, dtype=np.int32)[index_by_text_par_con])
|
#except:
|
||||||
|
#contours_only_text_parent_d_ordered = list(np.array(contours_only_text_parent_d_ordered, dtype=np.int32)[index_by_text_par_con])
|
||||||
order_text_new, id_of_texts_tot = self.do_order_of_regions(contours_only_text_parent_d_ordered, contours_only_text_parent_h, boxes_d, textline_mask_tot_d)
|
order_text_new, id_of_texts_tot = self.do_order_of_regions(contours_only_text_parent_d_ordered, contours_only_text_parent_h, boxes_d, textline_mask_tot_d)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue