-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathconvolution.py
92 lines (92 loc) · 3.1 KB
/
convolution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
import time as t
in_img = input("Enter the exact location path of the input image on which transformation is to be performed:")
img_1 = cv.imread(in_img)
img = cv.cvtColor(img_1, cv.COLOR_BGR2RGB)
while True:
print("-----------------------------------------------------------------------------------------------------------------------------------------------------------------------")
print("Convolution techniques\n")
t.sleep(0.2)
print("Select any one transformation to be applied on the given image:")
print("1.Blurring")
print("2.Noise reduction")
print("3.edge detection and sharpness")
print("4.exit");
ch = int(input("choose any number corresponding to the above listed transformations: "))
if ch == 1:
o_dir = input("please enter a valid directory location to save:")
plt.imshow(img)
plt.title("input image")
plt.savefig(o_dir +'blur_input.png')
plt.show()
avg_blur = cv.blur(img, (10,10))
plt.imshow(avg_blur)
plt.title("Blurring of image using averaging technique")
plt.savefig(o_dir +'avg_blur.png')
plt.show()
gaus_blur = cv.GaussianBlur(img,(5,5),0)
plt.imshow(gaus_blur)
plt.title("Image after gaussian bluring")
plt.savefig(o_dir + 'gaus_blur.png')
plt.show()
medBlur = cv.medianBlur(img,7)
plt.imshow(medBlur)
plt.title("Image after median blurring")
plt.savefig(o_dir + 'med_blur.png')
plt.show()
bilateral = cv.bilateralFilter(img,5,6,6)
plt.imshow(bilateral)
plt.title("Image after bilateral filtering")
plt.savefig(o_dir + 'out_bilateral.png')
plt.show()
im_mixed1 = np.hstack((avg_blur,gaus_blur))
im_mixed2 = np.hstack((medBlur, bilateral))
im_mixed = np.vstack((im_mixed1, im_mixed2))
plt.imshow(im_mixed)
plt.title("comparision between different filters average, gaussian, median, bilateral")
plt.savefig(o_dir + 'all_filters.png')
plt.show()
t.sleep(1)
elif ch == 2:
o_dir = input("please enter a valid directory location to save:")
img_new = cv.medianBlur(img,5)
plt.imshow(img)
plt.title("input image")
plt.savefig(o_dir +'noise_input.png')
plt.show()
plt.imshow(img_new)
plt.title("Image after noise reduction")
plt.savefig(o_dir+'without_noise.png')
plt.show()
denoise_median = np.hstack((img, img_new))
plt.imshow(denoise_median)
plt.title("Image before and after noise reduction using median filter")
plt.savefig(o_dir + 'denoise_median.png')
plt.show()
t.sleep(1)
elif ch == 3:
o_dir = input("please enter a valid directory location to save:")
gaus_blur = cv.GaussianBlur(img, (5,5), 0)
res_img = cv.addWeighted(img, 1.5,gaus_blur ,-0.5, 0)
plt.imshow(img)
plt.title("image before sharpening")
plt.show()
plt.imshow(res_img)
plt.title("Image after sharpening")
plt.savefig(o_dir + 'img_sharpened.png')
plt.show()
img_sharpened = np.hstack((img,res_img))
plt.imshow(img_sharpened)
plt.title("Image before and after sharpening")
plt.savefig(o_dir + 'sharpened_unsharpened.png')
plt.show()
t.sleep(1)
elif ch == 4:
t.sleep(0.2)
print("see you again!!!")
t.sleep(0.2)
quit()
else:
print("bad response... Try again\n")