Professional Documents
Culture Documents
Question
Question
Question
Asssignment no 02
• SOBAL FILTER
• LAPLACIAN FILTER
• WEIGHTED AVERAGE
• AVERAGE FILTER
SOLUTION
CODE
import cv2
import numpy as np
def edge_detection_canny(image):
return cv2.Canny(image, 50, 150)
def edge_detection_sobel(image):
blurred = cv2.GaussianBlur(image, (5, 5), 0)
sobel_x = cv2.Sobel(blurred, cv2.CV_64F, 1, 0, ksize=3)
sobel_y = cv2.Sobel(blurred, cv2.CV_64F, 0, 1, ksize=3)
magnitude = np.sqrt(sobel_x**2 + sobel_y**2)
magnitude = np.uint8(magnitude)
return magnitude
def edge_detection_laplacian(image):
blurred = cv2.GaussianBlur(image, (5, 5), 0)
laplacian = cv2.Laplacian(blurred, cv2.CV_64F)
laplacian = np.uint8(np.absolute(laplacian))
return laplacian
def edge_detection_average(image):
blurred = cv2.blur(image, (5, 5))
edges = cv2.subtract(image, blurred)
return edges
def edge_detection_weighted_average(image):
blurred = cv2.GaussianBlur(image, (5, 5), 0)
edges = cv2.subtract(image, blurred)
return edges
def geometric_mean_filter(image):
image = image.astype(np.float32)
blurred = cv2.blur(image, (3, 3))
output_image = np.exp(np.mean(np.log(image + 1))) * np.ones_like(image)
return (output_image - 1).astype(np.uint8)
def display_menu():
print("Menu:")
print("1. Canny Edge Detection")
print("2. Sobel Edge Detection")
print("3. Laplacian Edge Detection")
print("4. Average Filter")
print("5. Weighted Average (Gaussian) Filter")
print("7. Exit")
while True:
display_menu()
option = int(input("Enter your choice (1-7): "))
if option == 7:
break
filtered_image = apply_filter(input_image, option)
if filtered_image is not None:
cv2.imshow("Filtered Image", filtered_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
OUTPUT:
AVERAGE FILTER
WEIGHTED AVERAGE FILTER