Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Import numpy
- import numpy as np
- # Import skimage and matplotlib
- from skimage import io,color,util
- import matplotlib.pyplot as plt
- import math
- # Image loading
- img = io.imread('lena.png')
- img = color.rgb2gray(img)
- #Generate noisy image
- noise_img = util.random_noise(img,mode='gaussian',mean=0,var=0.001)*255
- #User Input
- size=3
- k=size//2
- C=2
- new_image1=np.zeros([c,r])
- new_image2=np.zeros([c,r])
- new_image3=np.zeros([c,r])
- #Gradient method
- for i in range(0,r-1):
- for j in range(0,c-1):
- dx=noise_img[i,j]-noise_img[i,j+1]
- dy=noise_img[i,j]-noise_img[i+1,j]
- new_image1[i,j]=math.sqrt(dx**2+dy**2)
- #Compass method
- for i in range(0,r-1):
- for j in range(0,c-1):
- d1=noise_img[i,j-1]-noise_img[i,j+1]
- d2=noise_img[i-1,j]-noise_img[i+1,j]
- d3=noise_img[i-1,j-1]-noise_img[i+1,j+1]
- d4=noise_img[i+1,j-1]-noise_img[i-1,j+1]
- new_image2[i,j]=np.max(np.abs([d1,d2,d3,d4]))
- #Sobel method
- F1=[[1,C,1],[0,0,0],[-1,-C,-1]]
- F2=[[0,1,C],[-1,0,1],[-C,-1,0]]
- F3=[[-1,0,1],[-C,0,C],[-1,0,1]]
- F4=[[-C,-1,0],[-1,0,1],[0,1,C]]
- for i in range(k,r-k):
- for j in range(k,c-k):
- V=noise_img[i-k:i+k+1,j-k:j+k+1]
- V1=np.sum((V*F1).flatten())
- V2=np.sum((V*F2).flatten())
- V3=np.sum((V*F3).flatten())
- V4=np.sum((V*F4).flatten())
- new_image3[i,j]=max(np.abs([V1,V2,V3,V4]))
- #Plots
- plt.figure(figsize=(5,5)),plt.imshow(noise_img,cmap='gray')
- plt.figure(figsize=(5,5)),plt.imshow(new_image1,cmap='gray')
- plt.figure(figsize=(5,5)),plt.imshow(new_image2,cmap='gray')
- plt.figure(figsize=(5,5)),plt.imshow(new_image3,cmap='gray')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement