python使用VideoWriter将图像写入视频后出现播放失败
原因1,图像尺寸不一样,要写入的图片的高或者宽和VideoWriter设置的高或宽不对应。img.shape第一个是高,第二个是宽,VideoWriter的参数表中元组刚好相反
原因2, VideoWriter默认写入的图像是三通道的,如果图像是单通道需要转换为三通道:
img =cv.cvtColor(img,cv.COLOR_GRAY2BGR) # cv.VideoWriter()默认是写入三通道的数据
完整代码:
def save_as_avi(imgs,saveargs):
fourcc = cv.VideoWriter_fourcc(*'XVID')
fps = 2 # 视频每秒24帧
video = cv.VideoWriter(os.path.join(saveargs[0], saveargs[1]+‘.avi’), fourcc, fps, (551, 908))
# 视频保存在当前目录下
for img in imgs:
img =cv.cvtColor(img,cv.COLOR_GRAY2BGR) # cv.VideoWriter()默认是写入三通道的数据
print(img.shape)
video.write(img)
video.release()
cv.destroyAllWindows()