|
|
@ -23,6 +23,7 @@ if __name__ == '__main__': |
|
|
|
import cv2 |
|
|
|
import numpy as np |
|
|
|
import sys |
|
|
|
from functools import reduce |
|
|
|
def exponential(img, value): |
|
|
|
tmp = cv2.pow(img.astype(np.double), value)*(255.0/(255.0**value)) |
|
|
|
return tmp.astype(np.uint8) |
|
|
@ -38,6 +39,9 @@ if __name__ == '__main__': |
|
|
|
MIN_EXIST_TIME = 0.1 |
|
|
|
cnt = 0 |
|
|
|
avers = [] |
|
|
|
|
|
|
|
raw_aver = np.array([0]*64*4, np.float64) |
|
|
|
raw_aver2 = np.array([0]*64*4, np.float64) |
|
|
|
|
|
|
|
fourcc = cv2.VideoWriter_fourcc(*'XVID') |
|
|
|
videoWriter = cv2.VideoWriter('output.avi', fourcc, 10.0, (SIZE*2,SIZE*4)) |
|
|
@ -53,19 +57,32 @@ if __name__ == '__main__': |
|
|
|
innerStartTime = 0 |
|
|
|
path = [] |
|
|
|
speed = 0 |
|
|
|
avers.append(np.zeros((SIZE,SIZE), np.uint16)) |
|
|
|
avers.append(np.zeros((SIZE,SIZE), np.uint16)) |
|
|
|
avers.append(np.zeros((SIZE,SIZE), np.uint16)) |
|
|
|
avers.append(np.zeros((SIZE,SIZE), np.uint16)) |
|
|
|
while gridEye.readFrame(): |
|
|
|
frames = gridEye.frames |
|
|
|
imgs = [] |
|
|
|
raw = [] |
|
|
|
for frame in frames: |
|
|
|
img = (np.array(frame.data)-15)*10 |
|
|
|
img = cv2.resize(img.astype(np.uint8), (SIZE,SIZE), interpolation = cv2.INTER_LINEAR) # INTER_LINEAR, INTER_CUBIC |
|
|
|
imgs.append(img) |
|
|
|
avers.append(np.zeros((SIZE,SIZE), np.uint16)) |
|
|
|
raw += reduce(lambda x,y: x+y, frame.data) |
|
|
|
raw_aver += np.array(raw) |
|
|
|
raw_aver2 += np.array(raw)**2 |
|
|
|
if cnt < AVERAGE_FRAME: |
|
|
|
cnt += 1 |
|
|
|
for i in range(len(imgs)): |
|
|
|
avers[i] += imgs[i] |
|
|
|
if cnt == AVERAGE_FRAME: |
|
|
|
b = (raw_aver/AVERAGE_FRAME)**2 |
|
|
|
a = raw_aver2/AVERAGE_FRAME |
|
|
|
print ('aver', raw_aver/AVERAGE_FRAME) |
|
|
|
print ((a-b)**0.5) |
|
|
|
print (sum((a-b)**0.5)/64/4) |
|
|
|
exit() |
|
|
|
for i in range(len(avers)): |
|
|
|
avers[i] = avers[i]/AVERAGE_FRAME |
|
|
|
avers[i] = avers[i].astype(np.uint8) |
|
|
@ -227,4 +244,4 @@ if __name__ == '__main__': |
|
|
|
break |
|
|
|
|
|
|
|
videoWriter.release() |
|
|
|
cv2.destroyAllWindows() |
|
|
|
cv2.destroyAllWindows() |