Amazing-Python-Scripts
74 строки · 2.1 Кб
1import cv2
2import tkinter as tk
3from tkinter.filedialog import *
4
5
6def choose_image(): # reading the image
7photo = askopenfilename()
8global img
9img = cv2.imread(photo)
10img = cv2.resize(img, (500, 500))
11
12# functions for every border type
13
14
15def constant_border():
16bordered = cv2.copyMakeBorder(img, 50, 50, 50, 50, cv2.BORDER_CONSTANT)
17cv2.imshow("Constant border", bordered)
18cv2.waitKey(0)
19cv2.destroyAllWindows()
20
21
22def reflection_border():
23bordered = cv2.copyMakeBorder(img, 50, 50, 50, 50, cv2.BORDER_REFLECT)
24cv2.imshow("Reflection border", bordered)
25cv2.waitKey(0)
26cv2.destroyAllWindows()
27
28
29def default_border():
30bordered = cv2.copyMakeBorder(img, 50, 50, 50, 50, cv2.BORDER_DEFAULT)
31cv2.imshow("Default border", bordered)
32cv2.waitKey(0)
33cv2.destroyAllWindows()
34
35
36def replicate_border():
37bordered = cv2.copyMakeBorder(img, 50, 50, 50, 50, cv2.BORDER_REPLICATE)
38cv2.imshow("Replicate border", bordered)
39cv2.waitKey(0)
40cv2.destroyAllWindows()
41
42
43def wrap_border():
44bordered = cv2.copyMakeBorder(img, 50, 50, 50, 50, cv2.BORDER_WRAP)
45cv2.imshow("Wrap border", bordered)
46cv2.waitKey(0)
47cv2.destroyAllWindows()
48
49
50window = tk.Tk() # displaying menu and options
51window.title("Borders on images")
52window.geometry('320x220')
53label = tk.Label(window, text="Select an image and then choose an option").grid(
54row=0, column=0)
55b = tk.Button(window, text="Choose image",
56command=choose_image).grid(row=1, column=0)
57
58rad1 = tk.Radiobutton(window, text='Constant border',
59value=1, command=constant_border)
60rad2 = tk.Radiobutton(window, text='reflection border',
61value=2, command=reflection_border)
62rad3 = tk.Radiobutton(window, text='default border',
63value=3, command=default_border)
64rad4 = tk.Radiobutton(window, text='replicate border',
65value=4, command=replicate_border)
66rad5 = tk.Radiobutton(window, text='wrap border', value=5, command=wrap_border)
67
68rad1.grid(row=2, column=0)
69rad2.grid(row=3, column=0)
70rad3.grid(row=4, column=0)
71rad4.grid(row=5, column=0)
72rad5.grid(row=6, column=0)
73
74window.mainloop()
75