Unicode_literals (из __future__) не работает с аргументом кодека fourcc в VideoCriter () openCV - PullRequest
0 голосов
/ 19 июня 2019

Я использую: Психопия Версия: 1.90.3 Python 2.7

Я пытаюсь записать видеофайлы во время эксперимента с помощью VideoWriter () cv2. Функция VideoWriter () нуждается в кодеке fourcc в качестве второго аргумента, но кажется, что кодирование через "cv2.VideoWriter_fourcc (* 'XVID')" конфликтует с unicode_literals. Если загружен unicode_literals, всплывающее сообщение об ошибке для аргумента fourcc:

"TypeError: Ожидаемая односимвольная строка для аргумента 'c1'"

Вот мой фрагмент кода для функции VideoRecording (), которую я хочу вызвать в исходном коде моего эксперимента. Ошибка касается определения

fourcc = cv2.VideoWriter_fourcc(*'XVID')
def VideoRecording(video_width,video_height,video_fps,seconds):

    cap = cv2.VideoCapture(0)
    cap.set(3,video_width) # width
    cap.set(4,video_height) #height 
    cap.set(5,video_fps) # frames per second

    # Define the codec and create VideoWriter object
    fps = cap.get(5)
    fourcc = cv2.VideoWriter_fourcc(*'XVID')
    filename = str('output_intrasync_video/' + subject[0] + '_' + str(trial_block) + '_' + str(x) + '.avi')
    out = cv2.VideoWriter(filename,fourcc,video_fps, (video_width,video_height))

    start = time.time()
    zeitdauer=0
    while(zeitdauer<seconds):
        end=time.time()
        zeitdauer=end-start
        ret, frame = cap.read()
        if ret==True:
            frame = cv2.flip(frame,180)
            # write the flipped frame
            out.write(frame)

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

    # Release everything if job is finished
    cap.release()
    out.release()
    cv2.destroyAllWindows()

Функция работает нормально без загрузки unicode_literals, но мне нужно загрузить unicode_literals для функционирования остальной части моего кода.

Любые иды, почему аргумент кодека fourcc несовместим с unicode_literals?

Ура, Carrie

...