cv2从numpy矩阵保存视频时出现问题

时间:2019-12-27 17:09:06

标签: python opencv

我使用python 3.6和最新版本的opencv

我有一个名为mat的numpy矩阵,形状为(158,27648) mat的每一行均以灰度表示单个帧的像素值。 因此获得第一帧:

frame_one = mat[1,:].reshape(144,192)

每帧的大小为(144,192)

当我使用时:

plt.imshow(frame_one)

我得到了我期望得到的结果-视频中的一帧

现在,我想将所有文件保存到.avi视频中。我尝试过:

import cv2
out = cv2.VideoWriter('output6.avi', 1145656920, 15, (144, 192), 0)
for i in range(156):
    frame = mat[i,:].reshape(144,192)
    frame = np.expand_dims(frame, axis = 2)
    frame = (np.concatenate([frame, frame, frame], axis = 2) / np.max(frame)) * 255
    #frame = cv2.cvtColor(frame, cv2.COLOR_GRAY2BGR)
    out.write(frame.astype(int))
out.release()

以及此代码的许多版本:如果不进行max和255乘法的除法运算,则仅用其中之一进行设置,而没有额外的尺寸,切换视频阅读器的高度和重量,将编解码器更改为-1。我不断收到媒体播放器无法读取的视频。

0 个答案:

没有答案