python读取视频分辨率_python_opencv修改视频分辨率

在测试alphapose时,原始视频的分辨率过高,导致网络难以运行,所以要修改视频的分辨率,代码如下:

import cv2

cap= cv2.VideoCapture("videl_1.mp4")

videowriter= cv2.VideoWriter("videl_640_360"+".avi", cv2.VideoWriter_fourcc(‘M‘, ‘J‘, ‘P‘, ‘G‘), 15, (640,360))

success, _=cap.read()whilesuccess:

success, img1=cap.read()try:

img= cv2.resize(img1, (640, 360), interpolation=cv2.INTER_LINEAR)

videowriter.write(img)

except:break

cv2.VideoWriter()

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

第一个参数是要保存的文件的路径

fourcc 指定编码器,一般有“DIVX"、”MJPG"、“XVID”、“X264",根据你的电脑环境安装了哪些编码器。

fps 要保存的视频的帧率

frameSize 要保存的文件的画面尺寸

isColor 指示是黑白画面还是彩色的画面

需要注意的是在 VideoWriter 中的尺寸要和 write() 中写进去的一样,也就是resize()函数的尺寸大小,不然视频会存储失败。

cv2.resize()

cv2.resize(src, size, interpolation) ->dst

src - 原图

size-resize后图片的大小,理论上可以随意设置。

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

INTER_NEAREST - 最近邻插值法

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

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

INTER_CUBIC - 基于4x4像素邻域的3次插值法

INTER_LANCZOS4 - 基于8x8像素邻域的Lanczos插值

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

dst - 目标图像。

这里本来可以不使用异常处理的,但是因为在处理每一个视频的最后一帧的时候都会报一个这样的错误:

原文:https://www.cnblogs.com/liuwenhua/p/12744997.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值