mirror of
https://github.com/qurator-spk/eynollah.git
synced 2025-06-09 20:29:55 +02:00
🎨 cleanup, remove unused vars, use max over if-else
This commit is contained in:
parent
8f0455590a
commit
df3e161325
1 changed files with 33 additions and 73 deletions
|
@ -1,4 +1,4 @@
|
|||
# pylint: disable=no-member
|
||||
# pylint: disable=no-member,invalid-name,line-too-long
|
||||
"""
|
||||
tool to extract table form data from alto xml data
|
||||
"""
|
||||
|
@ -419,18 +419,12 @@ class eynollah:
|
|||
del img_in
|
||||
del img_1ch
|
||||
del page_coord
|
||||
|
||||
K.clear_session()
|
||||
gc.collect()
|
||||
|
||||
print(dpi)
|
||||
|
||||
if dpi < 298:
|
||||
|
||||
# sys.exit()
|
||||
img_new, num_column_is_classified = self.calculate_width_height_by_columns(img, num_col, width_early, label_p_pred)
|
||||
|
||||
# img_new=resize_image(img,img_h_new,img_w_new)
|
||||
image_res = self.predict_enhancement(img_new)
|
||||
# cv2.imwrite(os.path.join(self.dir_out, self.image_filename_stem) + ".tif",self.image)
|
||||
# self.image=self.image.astype(np.uint16)
|
||||
|
@ -480,7 +474,6 @@ class eynollah:
|
|||
|
||||
return model, session
|
||||
|
||||
|
||||
def do_prediction(self, patches, img, model, marginal_of_patch_percent=0.1):
|
||||
|
||||
img_height_model = model.layers[len(model.layers) - 1].output_shape[1]
|
||||
|
@ -495,48 +488,34 @@ class eynollah:
|
|||
img = resize_image(img, img.shape[0], img_width_model)
|
||||
|
||||
# print(img_height_model,img_width_model)
|
||||
# margin = int(0.2 * img_width_model)
|
||||
margin = int(marginal_of_patch_percent * img_height_model)
|
||||
|
||||
width_mid = img_width_model - 2 * margin
|
||||
height_mid = img_height_model - 2 * margin
|
||||
|
||||
img = img / float(255.0)
|
||||
# print(sys.getsizeof(img))
|
||||
# print(np.max(img))
|
||||
|
||||
img = img.astype(np.float16)
|
||||
|
||||
# print(sys.getsizeof(img))
|
||||
|
||||
img_h = img.shape[0]
|
||||
img_w = img.shape[1]
|
||||
|
||||
prediction_true = np.zeros((img_h, img_w, 3))
|
||||
mask_true = np.zeros((img_h, img_w))
|
||||
nxf = img_w / float(width_mid)
|
||||
nyf = img_h / float(height_mid)
|
||||
|
||||
nxf = int(nxf) + 1 if nxf > int(nxf) else int(nxf)
|
||||
nyf = int(nyf) + 1 if nyf > int(nyf) else int(nyf)
|
||||
|
||||
for i in range(nxf):
|
||||
for j in range(nyf):
|
||||
|
||||
if i == 0:
|
||||
index_x_d = i * width_mid
|
||||
index_x_u = index_x_d + img_width_model
|
||||
else:
|
||||
index_x_d = i * width_mid
|
||||
index_x_u = index_x_d + img_width_model
|
||||
|
||||
if j == 0:
|
||||
index_y_d = j * height_mid
|
||||
index_y_u = index_y_d + img_height_model
|
||||
else:
|
||||
index_y_d = j * height_mid
|
||||
index_y_u = index_y_d + img_height_model
|
||||
|
||||
if index_x_u > img_w:
|
||||
index_x_u = img_w
|
||||
index_x_d = img_w - img_width_model
|
||||
|
@ -681,7 +660,7 @@ class eynollah:
|
|||
x, y, w, h = cv2.boundingRect(cnt)
|
||||
|
||||
if x <= 30:
|
||||
w = w + x
|
||||
w += x
|
||||
x = 0
|
||||
if (self.image.shape[1] - (x + w)) <= 30:
|
||||
w = w + (self.image.shape[1] - (x + w))
|
||||
|
@ -717,33 +696,31 @@ class eynollah:
|
|||
model_region, session_region = self.start_new_session_and_model(self.model_region_dir_fully_np)
|
||||
|
||||
if patches and cols == 1:
|
||||
img2 = otsu_copy_binary(img) # otsu_copy(img)
|
||||
img2 = otsu_copy_binary(img)
|
||||
img2 = img2.astype(np.uint8)
|
||||
img2 = resize_image(img2, int(img_height_h * 0.7), int(img_width_h * 0.7))
|
||||
|
||||
marginal_of_patch_percent = 0.1
|
||||
prediction_regions2 = self.do_prediction(patches, img2, model_region, marginal_of_patch_percent)
|
||||
prediction_regions2 = resize_image(prediction_regions2, img_height_h, img_width_h)
|
||||
|
||||
if patches and cols == 2:
|
||||
img2 = otsu_copy_binary(img) # otsu_copy(img)
|
||||
img2 = otsu_copy_binary(img)
|
||||
img2 = img2.astype(np.uint8)
|
||||
img2 = resize_image(img2, int(img_height_h * 0.4), int(img_width_h * 0.4))
|
||||
|
||||
marginal_of_patch_percent = 0.1
|
||||
prediction_regions2 = self.do_prediction(patches, img2, model_region, marginal_of_patch_percent)
|
||||
prediction_regions2 = resize_image(prediction_regions2, img_height_h, img_width_h)
|
||||
|
||||
elif patches and cols > 2:
|
||||
img2 = otsu_copy_binary(img) # otsu_copy(img)
|
||||
img2 = otsu_copy_binary(img)
|
||||
img2 = img2.astype(np.uint8)
|
||||
img2 = resize_image(img2, int(img_height_h * 0.3), int(img_width_h * 0.3))
|
||||
|
||||
marginal_of_patch_percent = 0.1
|
||||
prediction_regions2 = self.do_prediction(patches, img2, model_region, marginal_of_patch_percent)
|
||||
prediction_regions2 = resize_image(prediction_regions2, img_height_h, img_width_h)
|
||||
|
||||
if patches and cols == 2:
|
||||
img = otsu_copy_binary(img) # otsu_copy(img)
|
||||
img = otsu_copy_binary(img)
|
||||
img = img.astype(np.uint8)
|
||||
if img_width_h >= 2000:
|
||||
img = resize_image(img, int(img_height_h * 0.9), int(img_width_h * 0.9))
|
||||
|
@ -752,60 +729,55 @@ class eynollah:
|
|||
img = img.astype(np.uint8)
|
||||
|
||||
if patches and cols == 1:
|
||||
img = otsu_copy_binary(img) # otsu_copy(img)
|
||||
img = otsu_copy_binary(img)
|
||||
img = img.astype(np.uint8)
|
||||
img = resize_image(img, int(img_height_h * 0.5), int(img_width_h * 0.5))
|
||||
img = img.astype(np.uint8)
|
||||
|
||||
if patches and cols==3:
|
||||
if (self.scale_x==1 and img_width_h>3000) or (self.scale_x!=1 and img_width_h>2800):
|
||||
img = otsu_copy_binary(img)#self.otsu_copy(img)
|
||||
if patches and cols == 3:
|
||||
if (self.scale_x == 1 and img_width_h > 3000) or (self.scale_x != 1 and img_width_h > 2800):
|
||||
img = otsu_copy_binary(img)
|
||||
img = img.astype(np.uint8)
|
||||
#img= self.resize_image(img, int(img_height_h*0.8), int(img_width_h*0.8) )
|
||||
img= resize_image(img, int(img_height_h*2800/float(img_width_h)), 2800 )
|
||||
img = resize_image(img, int(img_height_h * 2800 / float(img_width_h)), 2800)
|
||||
else:
|
||||
img = otsu_copy_binary(img)#self.otsu_copy(img)
|
||||
img = otsu_copy_binary(img)
|
||||
img = img.astype(np.uint8)
|
||||
#img= self.resize_image(img, int(img_height_h*0.9), int(img_width_h*0.9) )
|
||||
|
||||
if patches and cols==4:
|
||||
if patches and cols == 4:
|
||||
#print(self.scale_x,img_width_h,'scale')
|
||||
if (self.scale_x==1 and img_width_h>4000) or (self.scale_x!=1 and img_width_h>3700):
|
||||
img = otsu_copy_binary(img)#self.otsu_copy(img)
|
||||
if (self.scale_x == 1 and img_width_h > 4000) or (self.scale_x != 1 and img_width_h > 3700):
|
||||
img = otsu_copy_binary(img)
|
||||
img = img.astype(np.uint8)
|
||||
#img= self.resize_image(img, int(img_height_h*0.7), int(img_width_h*0.7) )
|
||||
img= resize_image(img, int(img_height_h*3700/float(img_width_h)), 3700 )
|
||||
img= resize_image(img, int(img_height_h * 3700 / float(img_width_h)), 3700)
|
||||
else:
|
||||
img = otsu_copy_binary(img)#self.otsu_copy(img)
|
||||
img = img.astype(np.uint8)
|
||||
img= resize_image(img, int(img_height_h*0.9), int(img_width_h*0.9) )
|
||||
img= resize_image(img, int(img_height_h * 0.9), int(img_width_h * 0.9))
|
||||
|
||||
if patches and cols==5:
|
||||
if (self.scale_x==1 and img_width_h>5000):
|
||||
img = otsu_copy_binary(img)#self.otsu_copy(img)
|
||||
if self.scale_x == 1 and img_width_h > 5000:
|
||||
img = otsu_copy_binary(img)
|
||||
img = img.astype(np.uint8)
|
||||
img= resize_image(img, int(img_height_h*0.7), int(img_width_h*0.7) )
|
||||
#img= self.resize_image(img, int(img_height_h*4700/float(img_width_h)), 4700 )
|
||||
img= resize_image(img, int(img_height_h * 0.7), int(img_width_h * 0.7))
|
||||
else:
|
||||
img = otsu_copy_binary(img)#self.otsu_copy(img)
|
||||
img = otsu_copy_binary(img)
|
||||
img = img.astype(np.uint8)
|
||||
img= resize_image(img, int(img_height_h*0.9), int(img_width_h*0.9) )
|
||||
img= resize_image(img, int(img_height_h * 0.9), int(img_width_h * 0.9) )
|
||||
|
||||
if patches and cols>=6:
|
||||
if img_width_h>5600:
|
||||
img = otsu_copy_binary(img)#self.otsu_copy(img)
|
||||
if img_width_h > 5600:
|
||||
img = otsu_copy_binary(img)
|
||||
img = img.astype(np.uint8)
|
||||
#img= self.resize_image(img, int(img_height_h*0.7), int(img_width_h*0.7) )
|
||||
img= resize_image(img, int(img_height_h*5600/float(img_width_h)), 5600 )
|
||||
img= resize_image(img, int(img_height_h * 5600 / float(img_width_h)), 5600)
|
||||
else:
|
||||
img = otsu_copy_binary(img)#self.otsu_copy(img)
|
||||
img = otsu_copy_binary(img)
|
||||
img = img.astype(np.uint8)
|
||||
img= resize_image(img, int(img_height_h*0.9), int(img_width_h*0.9) )
|
||||
img= resize_image(img, int(img_height_h * 0.9), int(img_width_h * 0.9))
|
||||
|
||||
if not patches:
|
||||
img = otsu_copy_binary(img)#self.otsu_copy(img)
|
||||
img = otsu_copy_binary(img)
|
||||
img = img.astype(np.uint8)
|
||||
prediction_regions2=None
|
||||
prediction_regions2 = None
|
||||
|
||||
marginal_of_patch_percent = 0.1
|
||||
prediction_regions = self.do_prediction(patches, img, model_region, marginal_of_patch_percent)
|
||||
|
@ -847,7 +819,6 @@ class eynollah:
|
|||
|
||||
for i in range(num_cores):
|
||||
list_all_par = queue_of_all_params.get(True)
|
||||
|
||||
slopes_for_sub_process = list_all_par[0]
|
||||
polys_for_sub_process = list_all_par[1]
|
||||
boxes_for_sub_process = list_all_par[2]
|
||||
|
@ -855,7 +826,6 @@ class eynollah:
|
|||
contours_par_for_subprocess = list_all_par[4]
|
||||
boxes_coord_for_subprocess = list_all_par[5]
|
||||
indexes_for_subprocess = list_all_par[6]
|
||||
|
||||
for j in range(len(slopes_for_sub_process)):
|
||||
slopes.append(slopes_for_sub_process[j])
|
||||
all_found_texline_polygons.append(polys_for_sub_process[j])
|
||||
|
@ -899,7 +869,6 @@ class eynollah:
|
|||
|
||||
for i in range(num_cores):
|
||||
list_all_par = queue_of_all_params.get(True)
|
||||
|
||||
polys_for_sub_process = list_all_par[0]
|
||||
boxes_for_sub_process = list_all_par[1]
|
||||
contours_for_subprocess = list_all_par[2]
|
||||
|
@ -907,7 +876,6 @@ class eynollah:
|
|||
boxes_coord_for_subprocess = list_all_par[4]
|
||||
indexes_for_subprocess = list_all_par[5]
|
||||
slopes_for_sub_process = list_all_par[6]
|
||||
|
||||
for j in range(len(polys_for_sub_process)):
|
||||
slopes.append(slopes_for_sub_process[j])
|
||||
all_found_texline_polygons.append(polys_for_sub_process[j])
|
||||
|
@ -930,7 +898,6 @@ class eynollah:
|
|||
contours_textregion_par_per_each_subprocess = []
|
||||
all_box_coord_per_process = []
|
||||
index_by_text_region_contours = []
|
||||
slope_biggest = 0
|
||||
|
||||
textline_cnt_seperated = np.zeros(textline_mask_tot_ea.shape)
|
||||
|
||||
|
@ -938,9 +905,9 @@ class eynollah:
|
|||
|
||||
all_text_region_raw = textline_mask_tot_ea[boxes_text[mv][1] : boxes_text[mv][1] + boxes_text[mv][3], boxes_text[mv][0] : boxes_text[mv][0] + boxes_text[mv][2]]
|
||||
all_text_region_raw = all_text_region_raw.astype(np.uint8)
|
||||
img_int_p = all_text_region_raw[:, :] # self.all_text_region_raw[mv]
|
||||
img_int_p = all_text_region_raw[:, :]
|
||||
|
||||
##img_int_p=cv2.erode(img_int_p,self.kernel,iterations = 2)
|
||||
# img_int_p=cv2.erode(img_int_p,self.kernel,iterations = 2)
|
||||
# plt.imshow(img_int_p)
|
||||
# plt.show()
|
||||
|
||||
|
@ -953,13 +920,9 @@ class eynollah:
|
|||
textline_con, hierachy = return_contours_of_image(img_int_p)
|
||||
textline_con_fil = filter_contours_area_of_image(img_int_p, textline_con, hierachy, max_area=1, min_area=0.0008)
|
||||
y_diff_mean = find_contours_mean_y_diff(textline_con_fil)
|
||||
sigma_des = int(y_diff_mean * (4.0 / 40.0))
|
||||
|
||||
if sigma_des < 1:
|
||||
sigma_des = 1
|
||||
sigma_des = max(1, int(y_diff_mean * (4.0 / 40.0)))
|
||||
|
||||
img_int_p[img_int_p > 0] = 1
|
||||
# slope_for_all=self.return_deskew_slope_new(img_int_p,sigma_des)
|
||||
slope_for_all = return_deskew_slop(img_int_p, sigma_des, dir_of_all=self.dir_of_all, image_filename_stem=self.image_filename_stem)
|
||||
|
||||
if abs(slope_for_all) < 0.5:
|
||||
|
@ -978,9 +941,7 @@ class eynollah:
|
|||
crop_img, crop_coor = crop_image_inside_box(boxes_text[mv], image_page_rotated)
|
||||
|
||||
if abs(slope_for_all) < 45:
|
||||
|
||||
# all_box_coord.append(crop_coor)
|
||||
|
||||
textline_region_in_image = np.zeros(textline_mask_tot_ea.shape)
|
||||
cnt_o_t_max = contours_par_per_process[mv]
|
||||
x, y, w, h = cv2.boundingRect(cnt_o_t_max)
|
||||
|
@ -1049,7 +1010,6 @@ class eynollah:
|
|||
contours_textregion_par_per_each_subprocess = []
|
||||
all_box_coord_per_process = []
|
||||
index_by_text_region_contours = []
|
||||
slope_biggest = 0
|
||||
|
||||
for mv in range(len(boxes_text)):
|
||||
crop_img,crop_coor=crop_image_inside_box(boxes_text[mv],image_page_rotated)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue