【问题标题】:cv2.imshow and write video frames in colabcv2.imshow 并在 colab 中写入视频帧
【发布时间】:2020-10-18 23:21:46
【问题描述】:

我正在尝试运行此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()

但保存的帧只是黑色的,我不知道为什么

【问题讨论】:

    标签: tensorflow opencv keras google-colaboratory


    【解决方案1】:

    这不是 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
    

    现在保存的图像将是正确的。

    【讨论】:

    • 不客气。接受答案会很好。
    猜你喜欢
    • 2019-11-27
    • 2021-07-17
    • 2022-10-20
    • 1970-01-01
    • 2020-06-02
    • 2021-10-14
    • 2020-07-07
    • 1970-01-01
    • 2020-07-05
    相关资源
    最近更新 更多