Opencv 使用cv2改变视频分辨率和尺寸

用 CV2 改变视频分辨率和尺寸。代码如下:

​

​import cv2
def video():
    videoCapture = cv2.VideoCapture('.mp4')

    fps = 30           # 保存视频的帧率,可改变
    size = (1920, 1080)  # 保存视频大小

    videoWriter = cv2.VideoWriter('/Users/stella/Desktop/Meidapipe/Mediapipe_new.mp4',
                                 cv2.VideoWriter_fourcc('X','V','I','D'), fps, size)

    while True:
        success, frame = videoCapture.read()
        if success:
            img = cv2.resize(frame, size)
            videoWriter.write(img)
        else:
            print('break')
            break

    #释放对象,不然可能无法在外部打开
    videoWriter.release()

if __name__ == '__main__':
    video()
    print("end!")

VideoWriter(filename, fourcc, fps, frameSize[, isColor])

filename:是要保存的文件的路径
fourcc:指定编码器,一般有”DIVX”、”MJPG”、”XVID”、”X264″,根据你的电脑环境安装了哪些编码器。
fps:要保存的视频的帧率
frameSize:要保存的文件的画面尺寸
isColor:指示是黑白画面还是彩色的画面
注意:在 VideoWriter 中的尺寸要和 write() 中写进去的一样,也就是resize()函数的尺寸大小,不然视频会存储失败。

cv2.resize(src, size, interpolation)

src – 原图

size-resize 后视频的大小,与VideoWriter中一样

interpolation – 插值方法。共有5种:

INTER_NEAREST – 最近邻插值法

INTER_LINEAR – 双线性插值法(默认)

INTER_AREA – 基于局部像素的重采样(resampling using pixel area relation)。对于图像抽取(image decimation)来说,这可能是一个更好的方法。但如果是放大图像时,它和最近邻法的效果类似。

INTER_CUBIC – 基于4×4像素邻域的3次插值法

INTER_LANCZOS4 – 基于8×8像素邻域的Lanczos插值

通常的,缩小使用cv.INTER_AREA,放缩使用cv.INTER_CUBIC(较慢)和cv.INTER_LINEAR(较快效果也不错)。默认情况下,所有的放缩都使用cv.INTER_LINEAR。

Original: https://blog.csdn.net/stellao_o/article/details/122969981
Author: stellao_o
Title: Opencv 使用cv2改变视频分辨率和尺寸

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/636783/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球