tensorflow - cv2.imshow和在colab中写入视频帧

标签 tensorflow opencv keras google-colaboratory

我正在尝试运行此https://github.com/xamyzhao/timecraft/blob/master/make_timelapse.py
而且colab不支持cv2.imshow,所以我更改了这一部分

for i in range(n_samples):
    pred_vid = video_predictor_model.predict(
        [im[np.newaxis], np.ones((1,) + im.shape), np.zeros((1, 5))])
    print(f'Predicted video shape: {pred_vid.shape}')

    pred_vid_im = vis_utils.visualize_video(
        pred_vid[0], normalized=True)

    cv2.imshow(f'Video sample {i+1}', pred_vid_im)
cv2.waitKey()
from google.colab.patches import cv2_imshow

  for i in range(n_samples):
    pred_vid = video_predictor_model.predict(
        [im[np.newaxis], np.ones((1,) + im.shape), np.zeros((1, 5))])
    print(f'Predicted video shape: {pred_vid.shape}')

    pred_vid_im = vis_utils.visualize_video(
        pred_vid[0], normalized=True)

    #cv2.imshow(f'Video sample {i+1}', pred_vid_im)
    cv2_imshow(pred_vid_im)
    cv2.imwrite(f'Video sample {i+1}.jpg', pred_vid_im)

cv2.waitKey(0)
cv2.destroyAllWindows()
但是保存的帧只是黑色的,我不确定为什么

最佳答案

这不是google colab问题。 pred_vid_im保留标准化值。因此所有值都将在0到1之间。这就是保存的图像为黑色的原因。
因此,您需要将pred_vid_im乘以255.0。将代码更改为此,

pred_vid_im = vis_utils.visualize_video(pred_vid[0], normalized=True) * 255.0
现在,保存的图像将是正确的。

关于tensorflow - cv2.imshow和在colab中写入视频帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62627235/

相关文章:

python - 对象提取与构建

tensorflow - 我们如何将 .pth 模型转换为 .pb 文件?

python - tf.variable 在 TensorFlow 中是可训练的是什么意思

python - 如何在opencv中使用脊线检测过滤器

python - 当在 keras 中训练时 a 的形状和权重不同时必须指定轴

python - 是否可以将 python 及其必要的库导出到与环境无关的文件中?

python - 使用多个输入提供 keras 模型

python - 如何使用 L1 正则化促进张量的稀疏性

tensorflow - Keras 模型在本地运行良好,但无法在 Flask API 上运行

c++ - 如何根据 C++ 中的数据类型打印 OpenCv 矩阵?