mirror of
https://github.com/qurator-spk/eynollah.git
synced 2025-10-06 22:50:14 +02:00
try to fix the failed outsourcing of utils_ocr
This commit is contained in:
parent
13f85b0d5c
commit
c0137c29ad
2 changed files with 3 additions and 61 deletions
|
@ -3917,34 +3917,6 @@ class Eynollah:
|
|||
region_ids = ['region_%04d' % i for i in range(len(co_text_all_org))]
|
||||
return ordered, region_ids
|
||||
|
||||
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 return_it_in_two_groups(self, x_differential):
|
||||
split = [ind if x_differential[ind]!=x_differential[ind+1] else -1
|
||||
for ind in range(len(x_differential)-1)]
|
||||
split_masked = list( np.array(split[:])[np.array(split[:])!=-1] )
|
||||
if 0 not in split_masked:
|
||||
split_masked.insert(0, -1)
|
||||
split_masked.append(len(x_differential)-1)
|
||||
|
||||
split_masked = np.array(split_masked) +1
|
||||
|
||||
sums = [np.sum(x_differential[split_masked[ind]:split_masked[ind+1]])
|
||||
for ind in range(len(split_masked)-1)]
|
||||
|
||||
indexes_to_bec_changed = [ind if (np.abs(sums[ind-1]) > np.abs(sums[ind]) and
|
||||
np.abs(sums[ind+1]) > np.abs(sums[ind])) else -1
|
||||
for ind in range(1,len(sums)-1)]
|
||||
indexes_to_bec_changed_filtered = np.array(indexes_to_bec_changed)[np.array(indexes_to_bec_changed)!=-1]
|
||||
|
||||
x_differential_new = np.copy(x_differential)
|
||||
for i in indexes_to_bec_changed_filtered:
|
||||
i_slice = slice(split_masked[i], split_masked[i+1])
|
||||
x_differential_new[i_slice] = -1 * np.array(x_differential)[i_slice]
|
||||
|
||||
return x_differential_new
|
||||
|
||||
def return_start_and_end_of_common_text_of_textline_ocr(self,textline_image, ind_tot):
|
||||
width = np.shape(textline_image)[1]
|
||||
height = np.shape(textline_image)[0]
|
||||
|
@ -3988,36 +3960,6 @@ class Eynollah:
|
|||
else:
|
||||
pass
|
||||
|
||||
def return_start_and_end_of_common_text_of_textline_ocr_without_common_section(self, textline_image, ind_tot):
|
||||
width = np.shape(textline_image)[1]
|
||||
height = np.shape(textline_image)[0]
|
||||
common_window = int(0.06*width)
|
||||
|
||||
width1 = int ( width/2. - common_window )
|
||||
width2 = int ( width/2. + common_window )
|
||||
|
||||
img_sum = np.sum(textline_image[:,:,0], axis=0)
|
||||
sum_smoothed = gaussian_filter1d(img_sum, 3)
|
||||
|
||||
peaks_real, _ = find_peaks(sum_smoothed, height=0)
|
||||
if len(peaks_real)>70:
|
||||
#print(len(peaks_real), 'len(peaks_real)')
|
||||
|
||||
peaks_real = peaks_real[(peaks_real<width2) & (peaks_real>width1)]
|
||||
|
||||
arg_max = np.argmax(sum_smoothed[peaks_real])
|
||||
peaks_final = peaks_real[arg_max]
|
||||
|
||||
#plt.figure(ind_tot)
|
||||
#plt.imshow(textline_image)
|
||||
#plt.plot([peaks_final, peaks_final], [0, height-1])
|
||||
##plt.plot([peaks_final[1], peaks_final[1]], [0, height-1])
|
||||
#plt.savefig('./'+str(ind_tot)+'.png')
|
||||
|
||||
return peaks_final
|
||||
else:
|
||||
return None
|
||||
|
||||
def return_start_and_end_of_common_text_of_textline_ocr_new_splitted(
|
||||
self, peaks_real, sum_smoothed, start_split, end_split):
|
||||
|
||||
|
@ -4079,8 +4021,7 @@ class Eynollah:
|
|||
#width1 = int ( width/2. - common_window )
|
||||
#width2 = int ( width/2. + common_window )
|
||||
|
||||
split_point = self.return_start_and_end_of_common_text_of_textline_ocr_without_common_section(
|
||||
textline_image, ind_tot)
|
||||
split_point = return_start_and_end_of_common_text_of_textline_ocr_without_common_section(textline_image)
|
||||
if split_point:
|
||||
image1 = textline_image[:, :split_point,:]# image.crop((0, 0, width2, height))
|
||||
image2 = textline_image[:, split_point:,:]#image.crop((width1, 0, width, height))
|
||||
|
@ -5144,7 +5085,7 @@ class Eynollah:
|
|||
box_ind = all_box_coord[indexing]
|
||||
#print(ind_poly,np.shape(ind_poly), 'ind_poly')
|
||||
#print(box_ind)
|
||||
ind_poly = self.return_textline_contour_with_added_box_coordinate(ind_poly, box_ind)
|
||||
ind_poly = return_textline_contour_with_added_box_coordinate(ind_poly, box_ind)
|
||||
#print(ind_poly_copy)
|
||||
ind_poly[ind_poly<0] = 0
|
||||
x, y, w, h = cv2.boundingRect(ind_poly)
|
||||
|
|
|
@ -92,6 +92,7 @@ def return_start_and_end_of_common_text_of_textline_ocr_without_common_section(t
|
|||
return peaks_final
|
||||
else:
|
||||
return None
|
||||
|
||||
# Function to fit text inside the given area
|
||||
def fit_text_single_line(draw, text, font_path, max_width, max_height):
|
||||
initial_font_size = 50
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue