NormalizedCharacterImage.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. from copy import deepcopy
  2. from GrayscaleImage import GrayscaleImage
  3. from LetterCropper import LetterCropper
  4. from GaussianFilter import GaussianFilter
  5. class NormalizedCharacterImage(GrayscaleImage):
  6. def __init__(self, image=None, data=None, size=(60, 40), blur=1.1, crop_threshold=0.9):
  7. if image != None:
  8. GrayscaleImage.__init__(self, data=deepcopy(image.data))
  9. elif data != None:
  10. GrayscaleImage.__init__(self, data=deepcopy(data))
  11. self.blur = blur
  12. self.crop_threshold = crop_threshold
  13. self.size = size
  14. self.gausse_filter()
  15. self.increase_contrast()
  16. self.crop_to_letter()
  17. self.resize()
  18. def increase_contrast(self):
  19. self.data -= self.data.min()
  20. self.data /= self.data.max()
  21. def gausse_filter(self):
  22. filter = GaussianFilter(1.1)
  23. filter.filter(self)
  24. def crop_to_letter(self):
  25. cropper = LetterCropper(0.9)
  26. cropper.crop_to_letter(self)
  27. def resize(self):
  28. GrayscaleImage.resize(self, self.size)