GaussianFilter.py 915 B

12345678910111213141516171819202122232425262728
  1. from GrayscaleImage import GrayscaleImage
  2. from scipy.ndimage import gaussian_filter
  3. class GaussianFilter:
  4. """This class can apply a Gaussian blur on an image."""
  5. def __init__(self, scale):
  6. """Create a GaussianFilter object with a given scale."""
  7. self.scale = scale
  8. def get_filtered_copy(self, image):
  9. """Apply a gaussian blur to an image, to suppress noise."""
  10. image = gaussian_filter(image.data, self.scale)
  11. return GrayscaleImage(None, image)
  12. def filter(self, image):
  13. """Apply a Gaussian blur on the image data."""
  14. image.data = gaussian_filter(image.data, self.scale)
  15. def get_scale(self):
  16. """Return the scale of the Gaussian kernel."""
  17. return self.scale
  18. def set_scale(self, scale):
  19. """Set the scale of the Gaussian kernel."""
  20. self.scale = float(scale)
  21. scale = property(get_scale, set_scale)