To implement filters for smoothing and sharpening the images in the spatial domain.
Anaconda - Python 3.7
Import All The Necessary Modules.
Using Averaging Filter Smoothen the given image.
Using the Weighted Averaging Filter Smoothen the given Image.
Using the Gaussian Filter Smoothen the given Image.
Using the Median Filter Smoothen the given Image.
Using the Laplacian Kernel Filter Sharpen the given Image.
Using the Laplacian Operator Filter Sharpen the given Image.
i) Using Averaging Filter
import cv2
import numpy as np
import matplotlib.pyplot as plt
image1=cv2.imread('amaze.jgp')
image2=cv2.cvtColor (image1,cv2.COLOR_BGR2RGB)
kernel = np.ones ((11,11), np.float32)/121
image3=cv2.filter2D(image2,-1, kernel)
plt.figure(figsize = (9,9))
plt.subplot(1,2,1)
plt.imshow(image2)
plt.title('Orignal')
plt.axis('off')
plt.subplot(1,2,2)
plt.imshow(image3)
plt.title('Filtered')
plt.axis('off')
ii) Using Weighted Averaging Filter
import cv2
import numpy as np
import matplotlib.pyplot as plt
image1=cv2.imread('amaze.jgp')
image2=cv2.cvtColor (image1,cv2.COLOR_BGR2RGB)
kernal2 = np.array([[1,2,1],[2,4,2],[1,2,1]])/16
image3 = cv2.filter2D(image2,-1,kernal2)
plt.figure(figsize = (9,9))
plt.subplot(1,2,1)
plt.imshow(image2)
plt.title('Orignal')
plt.axis('off')
plt.subplot(1,2,2)
plt.imshow(image3)
plt.title('Filtered')
plt.axis('off')
iii) Using Gaussian Filter
import cv2
import numpy as np
import matplotlib.pyplot as plt
image1=cv2.imread('amaze.jgp')
image2=cv2.cvtColor (image1,cv2.COLOR_BGR2RGB)
gaussian_blur=cv2.GaussianBlur(src=image2,ksize=(11,11),sigmaX=0,sigmaY=0)
image3 = cv2.filter2D(image2,-1,kernal2)
plt.figure(figsize = (9,9))
plt.subplot(1,2,1)
plt.imshow(image2)
plt.title('Orignal')
plt.axis('off')
plt.subplot(1,2,2)
plt.imshow(image3)
plt.title('Filtered')
plt.axis('off')
iv) Using Median Filter
import cv2
import numpy as np
import matplotlib.pyplot as plt
image1=cv2.imread('amaze.jgp')
image2=cv2.cvtColor (image1,cv2.COLOR_BGR2RGB)
median=cv2.medianBlur(src=image2, ksize=11)
image3 = cv2.filter2D(image2,-1,kernal2)
plt.figure(figsize = (9,9))
plt.subplot(1,2,1)
plt.imshow(image2)
plt.title('Orignal')
plt.axis('off')
plt.subplot(1,2,2)
plt.imshow(image3)
plt.title('Filtered')
plt.axis('off')
i) Using Laplacian Kernel
import cv2
import numpy as np
import matplotlib.pyplot as plt
image1=cv2.imread('amaze.jgp')
image2=cv2.cvtColor (image1,cv2.COLOR_BGR2RGB)
kernel3=np.array([[0,1,0],[1,-4,1],[0,1,0]])
image3=cv2.filter2D(image2,-1, kernel3)
plt.figure(figsize = (9,9))
plt.subplot(1,2,1)
plt.imshow(image2)
plt.title('Orignal')
plt.axis('off')
plt.subplot(1,2,2)
plt.imshow(image3)
plt.title('Filtered')
plt.axis('off')
ii) Using Laplacian Operator
import cv2
import numpy as np
import matplotlib.pyplot as plt
image1=cv2.imread('amaze.jgp')
image2=cv2.cvtColor (image1,cv2.COLOR_BGR2RGB)
new_image = cv2.Laplacian(image2, cv2.CV_64F)
plt.figure(figsize = (9,9))
plt.subplot(1,2,1)
plt.imshow(image2)
plt.title('Orignal')
plt.axis('off')
plt.subplot(1,2,2)
plt.imshow(image3)
plt.title('Filtered')
plt.axis('off')
ii) Using Weighted Averaging Filter
Thus the filters are designed for smoothing and sharpening the images in the spatial domain.