Spaces:
Build error
Build error
File size: 2,219 Bytes
1865436 |
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 |
import os
import cv2
from src.ss.ss import handle_ss
from src.sts.demo.sts import handle_sts
from src.ir.ir import handle_ir
from utils.utils import correct_rotation, create_folder
def gen_frames(video, dir_path, rotateCode):
subpath = create_folder(dir_path)
yield b'--frame\r\n'
count = 0
while True:
ret, frame = video.read()
# if frame is read correctly ret is True
if rotateCode is not None:
frame = correct_rotation(frame, rotateCode)
if ret:
print('Read a new frame: ', ret)
img_path = os.path.join(subpath[0], "frames_%d.jpg" % count)
cv2.imwrite(img_path, frame)
segment_path, segment_array = handle_ss(img_path, subpath[1])
output_path_box, output_path_text, output_path_visual, dict_box_sign_out, dict_rec_sign_out = handle_sts(
img_path, segment_path, subpath[2])
predicted = handle_ir(img_path, dict_rec_sign_out, subpath[3])
print(predicted)
else:
print("Can't receive frame (stream end?). Exiting ...")
break
count = count + 1
ret, jpeg = cv2.imencode('.jpg', frame)
frame = jpeg.tobytes()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')
def gen_videos(file_in, file_out):
cap = cv2.VideoCapture(file_in)
width = cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH) # float `width`
height = cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)
fps = cap.get(cv2.cv.CV_CAP_PROP_FPS)
print(width, height, fps)
# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter(file_out, fourcc, 20.0, (640, 480))
while cap.isOpened():
ret, frame = cap.read()
if not ret:
print("Can't receive frame (stream end?). Exiting ...")
break
frame = cv2.flip(frame, 0)
# write the flipped frame
out.write(frame)
cv2.imshow('frame', frame)
if cv2.waitKey(1) == ord('q'):
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
|