Advertisement
Guest User

TP5

a guest
Dec 13th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.67 KB | None | 0 0
  1. # Import numpy
  2. import numpy as np
  3. # Import skimage and matplotlib
  4. from skimage import io,color,util
  5. import matplotlib.pyplot as plt
  6. import math
  7.  
  8. # Image loading
  9. img = io.imread('lena.png')
  10. img = color.rgb2gray(img)
  11.  
  12. #Generate noisy image
  13. noise_img = util.random_noise(img,mode='gaussian',mean=0,var=0.001)*255
  14.  
  15. #User Input
  16. size=3
  17. k=size//2
  18. C=2
  19.  
  20. new_image1=np.zeros([c,r])
  21. new_image2=np.zeros([c,r])
  22. new_image3=np.zeros([c,r])
  23.  
  24. #Gradient method
  25. for i in range(0,r-1):
  26.     for j in range(0,c-1):
  27.         dx=noise_img[i,j]-noise_img[i,j+1]
  28.         dy=noise_img[i,j]-noise_img[i+1,j]
  29.         new_image1[i,j]=math.sqrt(dx**2+dy**2)
  30.        
  31. #Compass method
  32. for i in range(0,r-1):
  33.     for j in range(0,c-1):
  34.         d1=noise_img[i,j-1]-noise_img[i,j+1]
  35.         d2=noise_img[i-1,j]-noise_img[i+1,j]
  36.         d3=noise_img[i-1,j-1]-noise_img[i+1,j+1]
  37.         d4=noise_img[i+1,j-1]-noise_img[i-1,j+1]
  38.         new_image2[i,j]=np.max(np.abs([d1,d2,d3,d4]))
  39.        
  40. #Sobel method
  41. F1=[[1,C,1],[0,0,0],[-1,-C,-1]]
  42. F2=[[0,1,C],[-1,0,1],[-C,-1,0]]
  43. F3=[[-1,0,1],[-C,0,C],[-1,0,1]]
  44. F4=[[-C,-1,0],[-1,0,1],[0,1,C]]
  45.        
  46. for i in range(k,r-k):
  47.     for j in range(k,c-k):
  48.         V=noise_img[i-k:i+k+1,j-k:j+k+1]
  49.         V1=np.sum((V*F1).flatten())
  50.         V2=np.sum((V*F2).flatten())
  51.         V3=np.sum((V*F3).flatten())
  52.         V4=np.sum((V*F4).flatten())
  53.         new_image3[i,j]=max(np.abs([V1,V2,V3,V4]))      
  54.  
  55. #Plots
  56. plt.figure(figsize=(5,5)),plt.imshow(noise_img,cmap='gray')
  57. plt.figure(figsize=(5,5)),plt.imshow(new_image1,cmap='gray')
  58. plt.figure(figsize=(5,5)),plt.imshow(new_image2,cmap='gray')
  59. plt.figure(figsize=(5,5)),plt.imshow(new_image3,cmap='gray')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement