mask.py 615 B

123456789101112131415161718192021222324
  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. from scipy.misc import face
  4. def convolve(image, mask):
  5. ret = np.zeros_like(image).astype("f4")
  6. for y in range(1, image.shape[0]-1):
  7. for x in range(1, image.shape[1]-1):
  8. ret[y, x] = (image[y-1:y+2, x-1:x+2] * mask).sum()
  9. return ret[1:-1, 1:-1]
  10. image = face(gray=True)
  11. mask = [[-1, -1, -1], [2, 2, 2], [-1, -1, -1]]
  12. mask = [[-1, 2, -1], [-1, 2, -1], [-1, 2, -1]]
  13. #mask = np.ones((3, 3)) / 9
  14. # mask = np.zeros((3, 3))
  15. result = convolve(image, mask)
  16. plt.subplot(121)
  17. plt.imshow(image)
  18. plt.subplot(122)
  19. plt.imshow(result)
  20. plt.show()