0

我使用: Psychopy 版本:1.90.3 Python 2.7

我正在尝试使用 cv2 的 VideoWriter() 在实验期间捕获视频文件。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不兼容?

干杯,嘉莉

4

0 回答 0