创建视频前后的帧大小差异

2024-05-29 03:10:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Opencv从图像创建视频

dim=(width, height)
fourcc = cv2.VideoWriter_fourcc(*'X264')
out_d = cv2.VideoWriter(save_path_depth,fourcc, fps, dim)

创建视频后,我阅读视频并从视频中提取帧

while(cap.isOpened()):
    ret, frame = cap.read()

    if ret == False:
        break
    print(frame)
    cv2.imwrite(output+"/"+ str(i).zfill(1) + ".png", frame)      
    i+=1

cap.release()

帧大小几乎是我最初用来创建视频的帧大小的两倍。除此之外,当我进行帧对帧比较时,有些帧与对应的原始帧完全不同。有人能解释一下背后的原因吗


Tags: 图像视频saveoutwidthcv2frameopencv
1条回答
网友
1楼 · 发布于 2024-05-29 03:10:35

这不是一个公平的比较

您的原始输入可能适用于PNG,因此被有效压缩

您的实际编码选项未显示,但由于使用有损格式,您很可能遇到generation loss。图像会被编码伪影永久改变。这些编码瑕疵是由于有助于使视频文件变小的方法造成的。在观看视频时,他们被设计成更难被注意到。但是,从H.264重新编码回PNG必须在新图像中包含这些噪声伪影,这会增加复杂性,使压缩更加困难,从而增加文件大小。PNG不能很好地处理噪声

第二,RGB到YUV颜色空间的转换正在发生,这也会导致差异

相关问题 更多 >

    热门问题