Add Word.baseline and Letter.elevation.
This commit is contained in:
parent
e3217d28b8
commit
a15cd7c4a2
1 changed files with 12 additions and 3 deletions
|
|
@ -80,7 +80,7 @@ class Line(PageObject):
|
||||||
@collect_iterable
|
@collect_iterable
|
||||||
def words(self):
|
def words(self):
|
||||||
for rotated_word_img in self.image.T._iter_lines(min_space=10):
|
for rotated_word_img in self.image.T._iter_lines(min_space=10):
|
||||||
yield Word(rotated_word_img.T)
|
yield Word(rotated_word_img.T, baseline=self.baseline)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def letters(self):
|
def letters(self):
|
||||||
|
|
@ -99,6 +99,10 @@ class Line(PageObject):
|
||||||
|
|
||||||
|
|
||||||
class Word(PageObject):
|
class Word(PageObject):
|
||||||
|
def __init__(self, image, baseline):
|
||||||
|
super().__init__(image)
|
||||||
|
self.baseline = baseline
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
return iter(self.letters)
|
return iter(self.letters)
|
||||||
|
|
||||||
|
|
@ -108,10 +112,15 @@ class Word(PageObject):
|
||||||
labels, max_label = ndimage.label(self.image.bitmap, CONNECTIVITY8)
|
labels, max_label = ndimage.label(self.image.bitmap, CONNECTIVITY8)
|
||||||
obj_indices = ndimage.find_objects(labels, max_label)
|
obj_indices = ndimage.find_objects(labels, max_label)
|
||||||
letter_images = (self.image[obj_index] for obj_index in obj_indices)
|
letter_images = (self.image[obj_index] for obj_index in obj_indices)
|
||||||
letters = (Letter(image) for image in letter_images)
|
letters = (
|
||||||
|
Letter(image, self.y1 + self.baseline - image.y2)
|
||||||
|
for image in letter_images
|
||||||
|
)
|
||||||
sorted_letters = sorted(letters, key=lambda letter: (letter.x1, -letter.y1))
|
sorted_letters = sorted(letters, key=lambda letter: (letter.x1, -letter.y1))
|
||||||
return iter(sorted_letters)
|
return iter(sorted_letters)
|
||||||
|
|
||||||
|
|
||||||
class Letter(PageObject):
|
class Letter(PageObject):
|
||||||
pass
|
def __init__(self, image, elevation):
|
||||||
|
super().__init__(image)
|
||||||
|
self.elevation = elevation
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue