cv2 python 帧可以显示,但不能保存到文件
cv2 python frames can be shown, but not saved to file
我正在尝试录制视频剪辑。
我有一个创建框架的对象“观察者”。
当我“imshow”图像时 - 我可以看到一切正常。
我正在生成一个“avi”文件。但是当我尝试查看它时 - 它是空的。剪辑是0秒的黑屏。
我错过了什么?
frames_count = 0
fourcc = cv2.VideoWriter_fourcc(*'XVID')
writer = cv2.VideoWriter('output.avi', fourcc, 15.0, frame_size)
while True:
img_pil = observer.get()
draw = ImageDraw.Draw(img_pil)
frame = cv2.cvtColor(np.array(img_pil), cv2.COLOR_BGR2GRAY)
writer.write(frame)
cv2.imshow(f"frame (q: {observer.q.qsize()})", frame)
frames_count += 1
if cv2.waitKey(1) & 0Xff == ord('q'):
break
if frames_count > 30:
break
writer.release()
问题是图片是灰度的。
这一行:
writer = cv2.VideoWriter('output.avi', fourcc, 15.0, frame_size)
应替换为:
writer = cv2.VideoWriter('output.avi', fourcc, 15.0, frame_size,0)
我正在尝试录制视频剪辑。 我有一个创建框架的对象“观察者”。
当我“imshow”图像时 - 我可以看到一切正常。 我正在生成一个“avi”文件。但是当我尝试查看它时 - 它是空的。剪辑是0秒的黑屏。
我错过了什么?
frames_count = 0
fourcc = cv2.VideoWriter_fourcc(*'XVID')
writer = cv2.VideoWriter('output.avi', fourcc, 15.0, frame_size)
while True:
img_pil = observer.get()
draw = ImageDraw.Draw(img_pil)
frame = cv2.cvtColor(np.array(img_pil), cv2.COLOR_BGR2GRAY)
writer.write(frame)
cv2.imshow(f"frame (q: {observer.q.qsize()})", frame)
frames_count += 1
if cv2.waitKey(1) & 0Xff == ord('q'):
break
if frames_count > 30:
break
writer.release()
问题是图片是灰度的。 这一行:
writer = cv2.VideoWriter('output.avi', fourcc, 15.0, frame_size)
应替换为:
writer = cv2.VideoWriter('output.avi', fourcc, 15.0, frame_size,0)