我使用: 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不兼容?
干杯,嘉莉