mirror of
https://github.com/qurator-spk/eynollah.git
synced 2025-06-08 11:49:55 +02:00
typo: s,contoures,contours,g
This commit is contained in:
parent
ccd83e94b1
commit
5f2867bfcf
6 changed files with 33 additions and 33 deletions
|
@ -32,7 +32,7 @@ warnings.filterwarnings("ignore")
|
||||||
from .utils.contour import (
|
from .utils.contour import (
|
||||||
filter_contours_area_of_image,
|
filter_contours_area_of_image,
|
||||||
find_contours_mean_y_diff,
|
find_contours_mean_y_diff,
|
||||||
find_new_features_of_contoures,
|
find_new_features_of_contours,
|
||||||
get_text_region_boxes_by_given_contours,
|
get_text_region_boxes_by_given_contours,
|
||||||
get_textregion_contours_in_org_image,
|
get_textregion_contours_in_org_image,
|
||||||
return_contours_of_image,
|
return_contours_of_image,
|
||||||
|
@ -1124,8 +1124,8 @@ class Eynollah:
|
||||||
|
|
||||||
def do_order_of_regions_full_layout(self, contours_only_text_parent, contours_only_text_parent_h, boxes, textline_mask_tot):
|
def do_order_of_regions_full_layout(self, contours_only_text_parent, contours_only_text_parent_h, boxes, textline_mask_tot):
|
||||||
self.logger.debug("enter do_order_of_regions_full_layout")
|
self.logger.debug("enter do_order_of_regions_full_layout")
|
||||||
cx_text_only, cy_text_only, x_min_text_only, _, _, _, y_cor_x_min_main = find_new_features_of_contoures(contours_only_text_parent)
|
cx_text_only, cy_text_only, x_min_text_only, _, _, _, y_cor_x_min_main = find_new_features_of_contours(contours_only_text_parent)
|
||||||
cx_text_only_h, cy_text_only_h, x_min_text_only_h, _, _, _, y_cor_x_min_main_h = find_new_features_of_contoures(contours_only_text_parent_h)
|
cx_text_only_h, cy_text_only_h, x_min_text_only_h, _, _, _, y_cor_x_min_main_h = find_new_features_of_contours(contours_only_text_parent_h)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
arg_text_con = []
|
arg_text_con = []
|
||||||
|
@ -1274,7 +1274,7 @@ class Eynollah:
|
||||||
|
|
||||||
def do_order_of_regions_no_full_layout(self, contours_only_text_parent, contours_only_text_parent_h, boxes, textline_mask_tot):
|
def do_order_of_regions_no_full_layout(self, contours_only_text_parent, contours_only_text_parent_h, boxes, textline_mask_tot):
|
||||||
self.logger.debug("enter do_order_of_regions_no_full_layout")
|
self.logger.debug("enter do_order_of_regions_no_full_layout")
|
||||||
cx_text_only, cy_text_only, x_min_text_only, _, _, _, y_cor_x_min_main = find_new_features_of_contoures(contours_only_text_parent)
|
cx_text_only, cy_text_only, x_min_text_only, _, _, _, y_cor_x_min_main = find_new_features_of_contours(contours_only_text_parent)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
arg_text_con = []
|
arg_text_con = []
|
||||||
|
@ -1655,8 +1655,8 @@ class Eynollah:
|
||||||
contours_only_text_parent = list(np.array(contours_only_text_parent)[index_con_parents])
|
contours_only_text_parent = list(np.array(contours_only_text_parent)[index_con_parents])
|
||||||
areas_cnt_text_parent = list(np.array(areas_cnt_text_parent)[index_con_parents])
|
areas_cnt_text_parent = list(np.array(areas_cnt_text_parent)[index_con_parents])
|
||||||
|
|
||||||
cx_bigest_big, cy_biggest_big, _, _, _, _, _ = find_new_features_of_contoures([contours_biggest])
|
cx_bigest_big, cy_biggest_big, _, _, _, _, _ = find_new_features_of_contours([contours_biggest])
|
||||||
cx_bigest, cy_biggest, _, _, _, _, _ = find_new_features_of_contoures(contours_only_text_parent)
|
cx_bigest, cy_biggest, _, _, _, _, _ = find_new_features_of_contours(contours_only_text_parent)
|
||||||
|
|
||||||
contours_only_text_d, hir_on_text_d = return_contours_of_image(text_only_d)
|
contours_only_text_d, hir_on_text_d = return_contours_of_image(text_only_d)
|
||||||
contours_only_text_parent_d = return_parent_contours(contours_only_text_d, hir_on_text_d)
|
contours_only_text_parent_d = return_parent_contours(contours_only_text_d, hir_on_text_d)
|
||||||
|
@ -1669,8 +1669,8 @@ class Eynollah:
|
||||||
contours_only_text_parent_d=list(np.array(contours_only_text_parent_d)[index_con_parents_d] )
|
contours_only_text_parent_d=list(np.array(contours_only_text_parent_d)[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] )
|
||||||
|
|
||||||
cx_bigest_d_big, cy_biggest_d_big, _, _, _, _, _ = find_new_features_of_contoures([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_contoures(contours_only_text_parent_d)
|
cx_bigest_d, cy_biggest_d, _, _, _, _, _ = find_new_features_of_contours(contours_only_text_parent_d)
|
||||||
try:
|
try:
|
||||||
cx_bigest_d_last5 = cx_bigest_d[-5:]
|
cx_bigest_d_last5 = cx_bigest_d[-5:]
|
||||||
cy_biggest_d_last5 = cy_biggest_d[-5:]
|
cy_biggest_d_last5 = cy_biggest_d[-5:]
|
||||||
|
@ -1715,8 +1715,8 @@ class Eynollah:
|
||||||
contours_only_text_parent = list(np.array(contours_only_text_parent)[index_con_parents])
|
contours_only_text_parent = list(np.array(contours_only_text_parent)[index_con_parents])
|
||||||
areas_cnt_text_parent = list(np.array(areas_cnt_text_parent)[index_con_parents])
|
areas_cnt_text_parent = list(np.array(areas_cnt_text_parent)[index_con_parents])
|
||||||
|
|
||||||
cx_bigest_big, cy_biggest_big, _, _, _, _, _ = find_new_features_of_contoures([contours_biggest])
|
cx_bigest_big, cy_biggest_big, _, _, _, _, _ = find_new_features_of_contours([contours_biggest])
|
||||||
cx_bigest, cy_biggest, _, _, _, _, _ = find_new_features_of_contoures(contours_only_text_parent)
|
cx_bigest, cy_biggest, _, _, _, _, _ = find_new_features_of_contours(contours_only_text_parent)
|
||||||
self.logger.debug('areas_cnt_text_parent %s', areas_cnt_text_parent)
|
self.logger.debug('areas_cnt_text_parent %s', areas_cnt_text_parent)
|
||||||
# self.logger.debug('areas_cnt_text_parent_d %s', areas_cnt_text_parent_d)
|
# self.logger.debug('areas_cnt_text_parent_d %s', areas_cnt_text_parent_d)
|
||||||
# self.logger.debug('len(contours_only_text_parent) %s', len(contours_only_text_parent_d))
|
# self.logger.debug('len(contours_only_text_parent) %s', len(contours_only_text_parent_d))
|
||||||
|
|
|
@ -153,10 +153,10 @@ class EynollahPlotter():
|
||||||
plt.legend(loc='best')
|
plt.legend(loc='best')
|
||||||
plt.savefig(os.path.join(self.dir_of_all, self.image_filename_stem+'_rotation_angle.png'))
|
plt.savefig(os.path.join(self.dir_of_all, self.image_filename_stem+'_rotation_angle.png'))
|
||||||
|
|
||||||
def write_images_into_directory(self, img_contoures, image_page):
|
def write_images_into_directory(self, img_contours, image_page):
|
||||||
if self.dir_of_cropped_images is not None:
|
if self.dir_of_cropped_images is not None:
|
||||||
index = 0
|
index = 0
|
||||||
for cont_ind in img_contoures:
|
for cont_ind in img_contours:
|
||||||
x, y, w, h = cv2.boundingRect(cont_ind)
|
x, y, w, h = cv2.boundingRect(cont_ind)
|
||||||
box = [x, y, w, h]
|
box = [x, y, w, h]
|
||||||
croped_page, page_coord = crop_image_inside_box(box, image_page)
|
croped_page, page_coord = crop_image_inside_box(box, image_page)
|
||||||
|
|
|
@ -10,7 +10,7 @@ from scipy.ndimage import gaussian_filter1d
|
||||||
|
|
||||||
from .is_nan import isNaN
|
from .is_nan import isNaN
|
||||||
from .contour import (contours_in_same_horizon,
|
from .contour import (contours_in_same_horizon,
|
||||||
find_new_features_of_contoures,
|
find_new_features_of_contours,
|
||||||
return_contours_of_image,
|
return_contours_of_image,
|
||||||
return_parent_contours)
|
return_parent_contours)
|
||||||
|
|
||||||
|
@ -783,7 +783,7 @@ def putt_bb_of_drop_capitals_of_model_in_patches_in_layout(layout_in_patch):
|
||||||
return layout_in_patch
|
return layout_in_patch
|
||||||
|
|
||||||
def check_any_text_region_in_model_one_is_main_or_header(regions_model_1,regions_model_full,contours_only_text_parent,all_box_coord,all_found_texline_polygons,slopes,contours_only_text_parent_d_ordered):
|
def check_any_text_region_in_model_one_is_main_or_header(regions_model_1,regions_model_full,contours_only_text_parent,all_box_coord,all_found_texline_polygons,slopes,contours_only_text_parent_d_ordered):
|
||||||
cx_main,cy_main ,x_min_main , x_max_main, y_min_main ,y_max_main,y_corr_x_min_from_argmin=find_new_features_of_contoures(contours_only_text_parent)
|
cx_main,cy_main ,x_min_main , x_max_main, y_min_main ,y_max_main,y_corr_x_min_from_argmin=find_new_features_of_contours(contours_only_text_parent)
|
||||||
|
|
||||||
length_con=x_max_main-x_min_main
|
length_con=x_max_main-x_min_main
|
||||||
height_con=y_max_main-y_min_main
|
height_con=y_max_main-y_min_main
|
||||||
|
@ -1267,7 +1267,7 @@ def combine_hor_lines_and_delete_cross_points_and_get_lines_features_back_new(im
|
||||||
ret, thresh = cv2.threshold(imgray, 0, 255, 0)
|
ret, thresh = cv2.threshold(imgray, 0, 255, 0)
|
||||||
contours_cross,_=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
|
contours_cross,_=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
|
||||||
|
|
||||||
cx_cross,cy_cross ,_ , _, _ ,_,_=find_new_features_of_contoures(contours_cross)
|
cx_cross,cy_cross ,_ , _, _ ,_,_=find_new_features_of_contours(contours_cross)
|
||||||
|
|
||||||
for ii in range(len(cx_cross)):
|
for ii in range(len(cx_cross)):
|
||||||
img_p_in[int(cy_cross[ii])-30:int(cy_cross[ii])+30,int(cx_cross[ii])+5:int(cx_cross[ii])+40,0]=0
|
img_p_in[int(cy_cross[ii])-30:int(cy_cross[ii])+30,int(cx_cross[ii])+5:int(cx_cross[ii])+40,0]=0
|
||||||
|
|
|
@ -75,7 +75,7 @@ def filter_contours_area_of_image_tables(image, contours, hirarchy, max_area, mi
|
||||||
jv += 1
|
jv += 1
|
||||||
return found_polygons_early
|
return found_polygons_early
|
||||||
|
|
||||||
def find_new_features_of_contoures(contours_main):
|
def find_new_features_of_contours(contours_main):
|
||||||
|
|
||||||
areas_main = np.array([cv2.contourArea(contours_main[j]) for j in range(len(contours_main))])
|
areas_main = np.array([cv2.contourArea(contours_main[j]) for j in range(len(contours_main))])
|
||||||
M_main = [cv2.moments(contours_main[j]) for j in range(len(contours_main))]
|
M_main = [cv2.moments(contours_main[j]) for j in range(len(contours_main))]
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import cv2
|
import cv2
|
||||||
from .contour import (
|
from .contour import (
|
||||||
find_new_features_of_contoures,
|
find_new_features_of_contours,
|
||||||
return_contours_of_image,
|
return_contours_of_image,
|
||||||
return_parent_contours,
|
return_parent_contours,
|
||||||
)
|
)
|
||||||
|
@ -20,9 +20,9 @@ def adhere_drop_capital_region_into_corresponding_textline(
|
||||||
):
|
):
|
||||||
# print(np.shape(all_found_texline_polygons),np.shape(all_found_texline_polygons[3]),'all_found_texline_polygonsshape')
|
# print(np.shape(all_found_texline_polygons),np.shape(all_found_texline_polygons[3]),'all_found_texline_polygonsshape')
|
||||||
# print(all_found_texline_polygons[3])
|
# print(all_found_texline_polygons[3])
|
||||||
cx_m, cy_m, _, _, _, _, _ = find_new_features_of_contoures(contours_only_text_parent)
|
cx_m, cy_m, _, _, _, _, _ = find_new_features_of_contours(contours_only_text_parent)
|
||||||
cx_h, cy_h, _, _, _, _, _ = find_new_features_of_contoures(contours_only_text_parent_h)
|
cx_h, cy_h, _, _, _, _, _ = find_new_features_of_contours(contours_only_text_parent_h)
|
||||||
cx_d, cy_d, _, _, y_min_d, y_max_d, _ = find_new_features_of_contoures(polygons_of_drop_capitals)
|
cx_d, cy_d, _, _, y_min_d, y_max_d, _ = find_new_features_of_contours(polygons_of_drop_capitals)
|
||||||
|
|
||||||
img_con_all = np.zeros((text_regions_p.shape[0], text_regions_p.shape[1], 3))
|
img_con_all = np.zeros((text_regions_p.shape[0], text_regions_p.shape[1], 3))
|
||||||
for j_cont in range(len(contours_only_text_parent)):
|
for j_cont in range(len(contours_only_text_parent)):
|
||||||
|
@ -87,9 +87,9 @@ def adhere_drop_capital_region_into_corresponding_textline(
|
||||||
region_final = region_with_intersected_drop[np.argmax(sum_pixels_of_intersection)] - 1
|
region_final = region_with_intersected_drop[np.argmax(sum_pixels_of_intersection)] - 1
|
||||||
|
|
||||||
# print(region_final,'region_final')
|
# print(region_final,'region_final')
|
||||||
# cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contoures(all_found_texline_polygons[int(region_final)])
|
# cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contours(all_found_texline_polygons[int(region_final)])
|
||||||
try:
|
try:
|
||||||
cx_t, cy_t, _, _, _, _, _ = find_new_features_of_contoures(all_found_texline_polygons[int(region_final)])
|
cx_t, cy_t, _, _, _, _, _ = find_new_features_of_contours(all_found_texline_polygons[int(region_final)])
|
||||||
# print(all_box_coord[j_cont])
|
# print(all_box_coord[j_cont])
|
||||||
# print(cx_t)
|
# print(cx_t)
|
||||||
# print(cy_t)
|
# print(cy_t)
|
||||||
|
@ -141,9 +141,9 @@ def adhere_drop_capital_region_into_corresponding_textline(
|
||||||
|
|
||||||
# areas_main=np.array([cv2.contourArea(all_found_texline_polygons[int(region_final)][0][j] ) for j in range(len(all_found_texline_polygons[int(region_final)]))])
|
# areas_main=np.array([cv2.contourArea(all_found_texline_polygons[int(region_final)][0][j] ) for j in range(len(all_found_texline_polygons[int(region_final)]))])
|
||||||
|
|
||||||
# cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contoures(all_found_texline_polygons[int(region_final)])
|
# cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contours(all_found_texline_polygons[int(region_final)])
|
||||||
|
|
||||||
cx_t, cy_t, _, _, _, _, _ = find_new_features_of_contoures(all_found_texline_polygons[int(region_final)])
|
cx_t, cy_t, _, _, _, _, _ = find_new_features_of_contours(all_found_texline_polygons[int(region_final)])
|
||||||
# print(all_box_coord[j_cont])
|
# print(all_box_coord[j_cont])
|
||||||
# print(cx_t)
|
# print(cx_t)
|
||||||
# print(cy_t)
|
# print(cy_t)
|
||||||
|
@ -191,7 +191,7 @@ def adhere_drop_capital_region_into_corresponding_textline(
|
||||||
# print(cx_t,'print')
|
# print(cx_t,'print')
|
||||||
try:
|
try:
|
||||||
# print(all_found_texline_polygons[j_cont][0])
|
# print(all_found_texline_polygons[j_cont][0])
|
||||||
cx_t, cy_t, _, _, _, _, _ = find_new_features_of_contoures(all_found_texline_polygons[int(region_final)])
|
cx_t, cy_t, _, _, _, _, _ = find_new_features_of_contours(all_found_texline_polygons[int(region_final)])
|
||||||
# print(all_box_coord[j_cont])
|
# print(all_box_coord[j_cont])
|
||||||
# print(cx_t)
|
# print(cx_t)
|
||||||
# print(cy_t)
|
# print(cy_t)
|
||||||
|
@ -238,7 +238,7 @@ def adhere_drop_capital_region_into_corresponding_textline(
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
##cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contoures(all_found_texline_polygons[int(region_final)])
|
##cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contours(all_found_texline_polygons[int(region_final)])
|
||||||
###print(all_box_coord[j_cont])
|
###print(all_box_coord[j_cont])
|
||||||
###print(cx_t)
|
###print(cx_t)
|
||||||
###print(cy_t)
|
###print(cy_t)
|
||||||
|
@ -292,9 +292,9 @@ def adhere_drop_capital_region_into_corresponding_textline(
|
||||||
region_final = region_with_intersected_drop[np.argmax(sum_pixels_of_intersection)] - 1
|
region_final = region_with_intersected_drop[np.argmax(sum_pixels_of_intersection)] - 1
|
||||||
|
|
||||||
# print(region_final,'region_final')
|
# print(region_final,'region_final')
|
||||||
# cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contoures(all_found_texline_polygons[int(region_final)])
|
# cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contours(all_found_texline_polygons[int(region_final)])
|
||||||
try:
|
try:
|
||||||
cx_t, cy_t, _, _, _, _, _ = find_new_features_of_contoures(all_found_texline_polygons[int(region_final)])
|
cx_t, cy_t, _, _, _, _, _ = find_new_features_of_contours(all_found_texline_polygons[int(region_final)])
|
||||||
# print(all_box_coord[j_cont])
|
# print(all_box_coord[j_cont])
|
||||||
# print(cx_t)
|
# print(cx_t)
|
||||||
# print(cy_t)
|
# print(cy_t)
|
||||||
|
@ -346,12 +346,12 @@ def adhere_drop_capital_region_into_corresponding_textline(
|
||||||
|
|
||||||
# areas_main=np.array([cv2.contourArea(all_found_texline_polygons[int(region_final)][0][j] ) for j in range(len(all_found_texline_polygons[int(region_final)]))])
|
# areas_main=np.array([cv2.contourArea(all_found_texline_polygons[int(region_final)][0][j] ) for j in range(len(all_found_texline_polygons[int(region_final)]))])
|
||||||
|
|
||||||
# cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contoures(all_found_texline_polygons[int(region_final)])
|
# cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contours(all_found_texline_polygons[int(region_final)])
|
||||||
|
|
||||||
# print(cx_t,'print')
|
# print(cx_t,'print')
|
||||||
try:
|
try:
|
||||||
# print(all_found_texline_polygons[j_cont][0])
|
# print(all_found_texline_polygons[j_cont][0])
|
||||||
cx_t, cy_t, _, _, _, _, _ = find_new_features_of_contoures(all_found_texline_polygons[int(region_final)])
|
cx_t, cy_t, _, _, _, _, _ = find_new_features_of_contours(all_found_texline_polygons[int(region_final)])
|
||||||
# print(all_box_coord[j_cont])
|
# print(all_box_coord[j_cont])
|
||||||
# print(cx_t)
|
# print(cx_t)
|
||||||
# print(cy_t)
|
# print(cy_t)
|
||||||
|
@ -417,7 +417,7 @@ def adhere_drop_capital_region_into_corresponding_textline(
|
||||||
#####try:
|
#####try:
|
||||||
#####if len(contours_new_parent)==1:
|
#####if len(contours_new_parent)==1:
|
||||||
######print(all_found_texline_polygons[j_cont][0])
|
######print(all_found_texline_polygons[j_cont][0])
|
||||||
#####cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contoures(all_found_texline_polygons[j_cont])
|
#####cx_t,cy_t ,_, _, _ ,_,_= find_new_features_of_contours(all_found_texline_polygons[j_cont])
|
||||||
######print(all_box_coord[j_cont])
|
######print(all_box_coord[j_cont])
|
||||||
######print(cx_t)
|
######print(cx_t)
|
||||||
######print(cy_t)
|
######print(cy_t)
|
||||||
|
|
|
@ -4,7 +4,7 @@ from scipy.signal import find_peaks
|
||||||
from scipy.ndimage import gaussian_filter1d
|
from scipy.ndimage import gaussian_filter1d
|
||||||
|
|
||||||
|
|
||||||
from .contour import find_new_features_of_contoures, return_contours_of_interested_region
|
from .contour import find_new_features_of_contours, return_contours_of_interested_region
|
||||||
from .resize import resize_image
|
from .resize import resize_image
|
||||||
from .rotate import rotate_image
|
from .rotate import rotate_image
|
||||||
|
|
||||||
|
@ -185,7 +185,7 @@ def get_marginals(text_with_lines, text_regions, num_col, slope_deskew, kernel=N
|
||||||
min_area_text=0.00001
|
min_area_text=0.00001
|
||||||
polygons_of_marginals=return_contours_of_interested_region(text_regions,pixel_img,min_area_text)
|
polygons_of_marginals=return_contours_of_interested_region(text_regions,pixel_img,min_area_text)
|
||||||
|
|
||||||
cx_text_only,cy_text_only ,x_min_text_only,x_max_text_only, y_min_text_only ,y_max_text_only,y_cor_x_min_main=find_new_features_of_contoures(polygons_of_marginals)
|
cx_text_only,cy_text_only ,x_min_text_only,x_max_text_only, y_min_text_only ,y_max_text_only,y_cor_x_min_main=find_new_features_of_contours(polygons_of_marginals)
|
||||||
|
|
||||||
text_regions[(text_regions[:,:]==4)]=1
|
text_regions[(text_regions[:,:]==4)]=1
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue