Отправьте видеосигнал из файла на устройство и запишите его выход одновременно в Python - PullRequest
1 голос
/ 11 февраля 2020

Мы хотели бы отправить видеосигнал из файла на устройство и записать вывод (немного обработанный) устройства в Python. Вы знаете, возможно ли это? Я сделал кусок кода, но пока не могу попробовать, потому что у меня все еще нет устройства. Как вы думаете, я в хорошем направлении? Должен ли я использовать два цикла while? Спасибо.

import numpy as np
import cv2

cap_file = cv2.VideoCapture('vtest.avi')

ret_file, frame_file = cap_file.read()
cv2.imshow('video_before_device', frame_file)
cv2.waitKey(1)


cap_device = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('video_after_device.avi' %i,fourcc, 25.0, (1280,720))
frame_number=0
framerate = 25.0

#We open a txt file
f= open("GI_genius_%i.txt" %i, "w+")

while(cap_device.isOpened()):
    ret, frame = cap_device.read()

    #To control time
    time = frame_number/framerate
    frame_number = frame_number + 1

    if ret==True:
        #Define the list of boundaries (BGR enlloc de RGB):
        boundaries = [([13, 144, 13], [99, 254, 131])]

        #Loop over the boundaries:
        for (lower, upper) in boundaries:
            lower = np.array(lower, dtype="uint8")
            upper = np.array(upper, dtype="uint8")

            #Find the color within the specified boundaries and apply the mask
            mask = cv2.inRange(frame, lower, upper)
            output = cv2.bitwise_and(frame, frame, mask = mask)

        count_nonzero = np.count_nonzero(mask)
        if (count_nonzero>50):
            f.write("Square in %.2f s \n" %round(time,2))

        out.write(output)


        cv2.imshow('frame', output) #Will this affect to the sending image?

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
        else:
            break

# Release everything if job is finished
f.close()
vid.release()
out.release()
cv2.destroyAllWindows()
...