#Importing Libraries
import cv2
import numpy as np
%matplotlib auto
#Reading image
image = cv2.imread('week_02_image.jpg')
#Gaussian filter function
def gaussian_filter(image, filter_size, sigma):
gaussian_filter = cv2.GaussianBlur(image, (filter_size, filter_size), sigma)
return gaussian_filter
#Converting Image from color to gray
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
#Gaussian Filter to filter noise or noise reduction
gaussian_filtered_image = gaussian_filter(gray_image,5,3)
cv2.imshow('Gaussian Image', gaussian_filtered_image) #Show gaussian filtered image
cv2.waitKey(0)
cv2.destroyAllWindows()
#Prewitt Filter
def prewitt_filter(image):
size = image.shape[:2]
vertical_filter = np.array([[-1,0,1], [-1,0,1], [-1,0,1]])
horizontal_filter = np.array([[-1,-1,-1], [0,0,0], [1,1,1]])
vertical_filtered_image = cv2.filter2D(image,-1,vertical_filter)
horizontal_filtered_image = cv2.filter2D(image, -1, horizontal_filter)
abs_grad_x = cv2.convertScaleAbs(vertical_filtered_image)
abs_grad_y = cv2.convertScaleAbs(horizontal_filtered_image)
grad = cv2.addWeighted(abs_grad_x,0.5, abs_grad_y,0.5,0)
return grad
prewitt_image = prewitt_filter(gaussian_filtered_image)
cv2.imshow('Prewitt Image', prewitt_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
#Writing Image to disk
cv2.imwrite('prewitt_image.jpg', prewitt_image)
#Laplacian Filter
def laplacian_filter(image):
lap_filter = np.array([[0,1,0], [1,-4,1], [0,1,0]])
lap_filtered_image = cv2.filter2D(image, -1, lap_filter)
abs_grad = cv2.convertScaleAbs(lap_filtered_image)
grad = cv2.addWeighted(abs_grad,20, abs_grad,20,0)
return grad
laplacian_image = laplacian_filter(gaussian_filtered_image)
cv2.imshow('Laplacian Image', laplacian_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
#Writing Image to disk
cv2.imwrite('laplacian_image.jpg', laplacian_image)