| 12345678910111213141516171819202122232425262728293031323334 |
- from copy import deepcopy
- from Rectangle import Rectangle
- class LetterCropper:
- def __init__(self, image, threshold = 0.9):
- self.source_image = image
- self.threshold = threshold
-
- def get_cropped_letter(self):
- self.determine_letter_bounds()
- self.result_image = deepcopy(self.source_image)
- self.result_image.crop(self.letter_bounds)
- return self.result_image
- def determine_letter_bounds(self):
- min_x = self.source_image.width
- max_x = 0
- min_y = self.source_image.height
- max_y = 0
- for y, x, value in self.source_image:
- if value < self.threshold:
- if x < min_x: min_x = x
- if y < min_y: min_y = y
- if x > max_x: max_x = x
- if y > max_y: max_y = y
-
- self.letter_bounds = Rectangle(
- min_x,
- min_y,
- max_x - min_x ,
- max_y - min_y
- )
|