我尝试使用我创建的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()
答案 0 :(得分:0)
我找到了解决方案!
我必须在out = cv2.VideoWriter('sample_video.avi',0, 25.0, (128,128))
完整的代码是:
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))
out = cv2.VideoWriter('sample_video.avi',0, 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()