【发布时间】:2017-05-02 11:28:59
【问题描述】:
我正在尝试从我创建的 cos 图像创建一个视频,但我制作的 avi 视频是空的。
我必须使用 cv2.VideoWriter()。创建的视频正确显示帧为 0 字节。你知道如何解决这个问题吗?
如果我从 avi 视频中获得一帧,那么我成功地创建了一个新的可播放视频。
提前谢谢你!
我的代码是
import cv2
import math
import numpy as np
N=128
Icos_1 = np.zeros((N,N))
Icos_2 = np.zeros((N,N))
for i in range(0,N):
for j in range(0,N):
myPi = 2*math.pi/N
th1 = 1*i + 3*j
th2 = 2*i + 4*j
Icos_1[i,j] = 255*(math.cos(myPi*th1))
Icos_2[i,j] = 255*(math.cos(myPi*th2))
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('sample_video.avi',fourcc, 25.0, (128,128))
or x in range(1, 100):
if (x % 2) != 0:
frame = Icos_1
else:
frame = Icos_2
out.write(np.uint8(frame))
cv2.imshow('frame',np.uint8(frame))
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Release video objects if job is finished
out.release()
【问题讨论】:
-
如果你使用
np.uint8(frame)在屏幕上显示那你为什么不使用write(np.uint8(frame)) -
您也可能没有安装正确的编解码器,或者您想要支持编写视频的编解码器。您使用什么操作系统?您是否也尝试过使用 MPEG-4 而不是 XVID?
-
@furas 没用!结果还是一样。还有其他想法吗?
标签: python python-2.7 opencv video