NormalizedCharacterImage.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from copy import deepcopy
  2. from GrayscaleImage import GrayscaleImage
  3. from GaussianFilter import GaussianFilter
  4. class NormalizedCharacterImage(GrayscaleImage):
  5. def __init__(self, image=None, data=None, height=None, blur=1.1):
  6. if image != None:
  7. GrayscaleImage.__init__(self, data=deepcopy(image.data))
  8. elif data != None:
  9. GrayscaleImage.__init__(self, data=deepcopy(data))
  10. self.blur = blur
  11. self.gaussian_filter()
  12. #self.increase_contrast()
  13. self.height = height
  14. self.resize()
  15. # def increase_contrast(self):
  16. # """Increase the contrast by performing a grayscale mapping from the
  17. # current maximum and minimum to a range between 0 and 1."""
  18. # self.data -= self.data.min()
  19. # self.data = self.data.astype(float) / self.data.max()
  20. def gaussian_filter(self):
  21. GaussianFilter(self.blur).filter(self)
  22. def resize(self):
  23. """Resize the image to a fixed height."""
  24. if self.height == None:
  25. return
  26. h, w = self.data.shape
  27. GrayscaleImage.resize(self, (self.height, self.height * w / h))