|
|
@@ -26,11 +26,14 @@ def match(paths, cap, show, delay): |
|
|
|
|
|
|
|
matching = False |
|
|
|
|
|
|
|
tacc = 0 |
|
|
|
then = time.time() * 1000 |
|
|
|
tacc = delay |
|
|
|
then = 0 |
|
|
|
avg = 128 |
|
|
|
while not matching: |
|
|
|
ret, frame = cap.read() |
|
|
|
if cv2.mean(frame)[0] < 30: |
|
|
|
mean = cv2.mean(frame)[0] |
|
|
|
avg = (avg + mean) / 2 |
|
|
|
if mean < avg: |
|
|
|
continue |
|
|
|
|
|
|
|
# delay |
|
|
@@ -97,9 +100,12 @@ def record(path, cap): |
|
|
|
|
|
|
|
cv2.imshow(name, rgb_frame) |
|
|
|
|
|
|
|
avg = 128 |
|
|
|
while True: |
|
|
|
ret, frame = cap.read() |
|
|
|
if cv2.mean(frame)[0] < 30: |
|
|
|
mean = cv2.mean(frame)[0] |
|
|
|
avg = (avg + mean) / 2 |
|
|
|
if mean < avg: |
|
|
|
continue |
|
|
|
|
|
|
|
cv2.imshow("frame", frame) |
|
|
@@ -130,7 +136,7 @@ sub_match.add_argument( |
|
|
|
"-s", "--show", default=False, action="store_true", |
|
|
|
help="show what the camera sees") |
|
|
|
sub_match.add_argument( |
|
|
|
"-w", "--waitfor", type=str, default=None, |
|
|
|
"-w", "--wait", type=str, default=None, |
|
|
|
help="wait for newline on stdin") |
|
|
|
sub_match.add_argument( |
|
|
|
"-t", "--delay", type=int, default=0, |
|
|
@@ -150,14 +156,9 @@ sub_record.add_argument( |
|
|
|
args = parser.parse_args() |
|
|
|
|
|
|
|
if args.command == "match": |
|
|
|
print(args) |
|
|
|
if args.waitfor is not None: |
|
|
|
s = input("Waiting for '"+args.waitfor+"'...") |
|
|
|
if s != args.waitfor: |
|
|
|
print("Exiting because stdin was '"+s+"' and expected '"+args.waitfor+"'.") |
|
|
|
exit(1) |
|
|
|
else: |
|
|
|
print("Got '"+s+"'.") |
|
|
|
if args.wait: |
|
|
|
input("Waiting for newline...") |
|
|
|
print("Got newline."); |
|
|
|
|
|
|
|
match(args.faces, cv2.VideoCapture(args.device), args.show, args.delay) |
|
|
|
elif args.command == "record": |