-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathperspective_transform.py
80 lines (65 loc) · 2.15 KB
/
perspective_transform.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
import cv2
import keyboard
import numpy as np
import image_process
a = 20
b = 40
c = 60
d = -70
def perspective_transform(window):
global a, b, c, d
window_resized = cv2.resize(window, (640, 360))
original_resized = window_resized.copy()
# Remove upper half of image
cropped_window = window_resized[int(window_resized.shape[0] / 2):int(window_resized.shape[0])]
cropped_original = original_resized[int(original_resized.shape[0] / 2):int(original_resized.shape[0])]
width = cropped_window.shape[1]
height = cropped_window.shape[0]
window_size = (width, height)
width_original = cropped_original.shape[1]
height_original = cropped_original.shape[0]
original_size = (width_original, height_original)
# Cut my life into pieces. This is my last resort.
if keyboard.is_pressed('t'):
a += 100
print("a:", a)
if keyboard.is_pressed('y'):
b += 100
print("b:", b)
if keyboard.is_pressed('u'):
c += 10
print("c:", c)
if keyboard.is_pressed('i'):
d += 10
print("d:", d)
if keyboard.is_pressed('g'):
a -= 100
print("a", a)
if keyboard.is_pressed('h'):
b -= 100
print("b:", b)
if keyboard.is_pressed('j'):
c -= 10
print("c:", c)
if keyboard.is_pressed('k'):
d -= 10
print("d:", d)
src = np.float32(
[[(-a), height - b],
[width + a, height - b],
[width / 2 + c, (height / 2) + d],
[width / 2 - c, (height / 2) + d]])
dst = np.float32(
[[0, height],
[width, height],
[width, 0],
[0, 0]])
m = cv2.getPerspectiveTransform(src, dst)
warped = cv2.warpPerspective(cropped_window, m, window_size, flags=cv2.INTER_LINEAR)
original_warped = cv2.warpPerspective(cropped_original, m, original_size, flags=cv2.INTER_LINEAR)
cv2.namedWindow("original_warped", cv2.WINDOW_NORMAL)
cv2.resizeWindow("original_warped", 450, 500)
cv2.moveWindow("original_warped", -1820, 300)
cv2.imshow("original_warped", original_warped)
cv2.waitKey(1)
image_process.pre_process(warped, original_warped)