mirror of
https://github.com/qurator-spk/eynollah.git
synced 2025-10-15 19:09:58 +02:00
matching deskewed text region contours with predicted: simplify
- (no need for argmax if already sorted)
This commit is contained in:
parent
d774a23daa
commit
73e5a1def8
1 changed files with 7 additions and 8 deletions
|
@ -4559,7 +4559,6 @@ class Eynollah:
|
||||||
areas_cnt_text = np.array([cv2.contourArea(c) for c in contours_only_text_parent])
|
areas_cnt_text = np.array([cv2.contourArea(c) for c in contours_only_text_parent])
|
||||||
areas_cnt_text = areas_cnt_text / float(text_only.shape[0] * text_only.shape[1])
|
areas_cnt_text = areas_cnt_text / float(text_only.shape[0] * text_only.shape[1])
|
||||||
#self.logger.info('areas_cnt_text %s', areas_cnt_text)
|
#self.logger.info('areas_cnt_text %s', areas_cnt_text)
|
||||||
contour0 = contours_only_text_parent[np.argmax(areas_cnt_text)]
|
|
||||||
contours_only_text_parent = np.array(contours_only_text_parent)[areas_cnt_text > MIN_AREA_REGION]
|
contours_only_text_parent = np.array(contours_only_text_parent)[areas_cnt_text > MIN_AREA_REGION]
|
||||||
areas_cnt_text_parent = areas_cnt_text[areas_cnt_text > MIN_AREA_REGION]
|
areas_cnt_text_parent = areas_cnt_text[areas_cnt_text > MIN_AREA_REGION]
|
||||||
|
|
||||||
|
@ -4567,9 +4566,11 @@ class Eynollah:
|
||||||
contours_only_text_parent = contours_only_text_parent[index_con_parents]
|
contours_only_text_parent = contours_only_text_parent[index_con_parents]
|
||||||
areas_cnt_text_parent = areas_cnt_text_parent[index_con_parents]
|
areas_cnt_text_parent = areas_cnt_text_parent[index_con_parents]
|
||||||
|
|
||||||
center0 = np.stack(find_center_of_contours([contour0])) # [2, 1]
|
|
||||||
centers = np.stack(find_center_of_contours(contours_only_text_parent)) # [2, N]
|
centers = np.stack(find_center_of_contours(contours_only_text_parent)) # [2, N]
|
||||||
|
|
||||||
|
contour0 = contours_only_text_parent[-1]
|
||||||
|
center0 = centers[:, -1:] # [2, 1]
|
||||||
|
|
||||||
if np.abs(slope_deskew) >= SLOPE_THRESHOLD:
|
if np.abs(slope_deskew) >= SLOPE_THRESHOLD:
|
||||||
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)
|
||||||
|
@ -4578,17 +4579,15 @@ class Eynollah:
|
||||||
areas_cnt_text_d = areas_cnt_text_d / float(text_only_d.shape[0] * text_only_d.shape[1])
|
areas_cnt_text_d = areas_cnt_text_d / float(text_only_d.shape[0] * text_only_d.shape[1])
|
||||||
|
|
||||||
if len(contours_only_text_parent_d):
|
if len(contours_only_text_parent_d):
|
||||||
contour0_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)
|
||||||
contours_only_text_parent_d = np.array(contours_only_text_parent_d)[index_con_parents_d]
|
contours_only_text_parent_d = np.array(contours_only_text_parent_d)[index_con_parents_d]
|
||||||
# rs: should be the same, no?
|
|
||||||
assert np.all(contour0_d == contours_only_text_parent_d[-1]), (np.argmax(areas_cnt_text_d), index_con_parents_d[-1])
|
|
||||||
areas_cnt_text_d = areas_cnt_text_d[index_con_parents_d]
|
areas_cnt_text_d = areas_cnt_text_d[index_con_parents_d]
|
||||||
|
|
||||||
center0_d = np.stack(find_center_of_contours([contour0_d])) # [2, 1]
|
|
||||||
centers_d = np.stack(find_center_of_contours(contours_only_text_parent_d)) # [2, N]
|
centers_d = np.stack(find_center_of_contours(contours_only_text_parent_d)) # [2, N]
|
||||||
# rs: should be the same, no?
|
|
||||||
assert center0_d[0,0] == centers_d[0,-1] and center0_d[1,0] == centers_d[1,-1]
|
contour0_d = contours_only_text_parent_d[-1]
|
||||||
|
center0_d = centers_d[:, -1:] # [2, 1]
|
||||||
|
|
||||||
last5_centers_d = centers_d[:, -5:]
|
last5_centers_d = centers_d[:, -5:]
|
||||||
dists_d = np.linalg.norm(center0 - last5_centers_d, axis=0)
|
dists_d = np.linalg.norm(center0 - last5_centers_d, axis=0)
|
||||||
ind_largest = len(contours_only_text_parent_d) - last5_centers_d.shape[1] + np.argmin(dists_d)
|
ind_largest = len(contours_only_text_parent_d) - last5_centers_d.shape[1] + np.argmin(dists_d)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue