-
Notifications
You must be signed in to change notification settings - Fork 1
/
slitscan_test.py
53 lines (38 loc) · 1.11 KB
/
slitscan_test.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
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = int(cap.get(cv2.CAP_PROP_FPS))
cap.set(cv2.CAP_PROP_FPS, 30)
incr = 3
half = int(height/2)
histLen = int(half/incr)
index = half
scans = np.zeros([half,width,3])
history = np.zeros([histLen, half, width, 3])
historyIndex = 0
offset = 0
while cap.isOpened():
ret, frame = cap.read()
#Copy left half of videoframe to the blank frame
history[historyIndex] = frame[:half]
for i in range(histLen, 0, -1):
y = i * incr
# print(y)
currentIndex = (i + offset) % histLen
# hist = history[i].reshape(half, width, 3)
frame[y-incr:y] = history[currentIndex, y-incr:y]
#take n pixel vertival slice/slit
# slit = frame[half:half+incr]
# #copy slit to split array
# # scans[-1-incr:-1] = slit
# scans = np.concatenate([scans, slit])[incr:half+incr]
# for i in range(half):
# frame[i] = scans[i]
cv2.imshow("webcam", frame)
historyIndex = (historyIndex + 1) % histLen
offset += 1
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()