概述
用 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 - 基于4x4像素邻域的3次插值法
INTER_LANCZOS4 - 基于8x8像素邻域的Lanczos插值
通常的,缩小使用cv.INTER_AREA,放缩使用cv.INTER_CUBIC(较慢)和cv.INTER_LINEAR(较快效果也不错)。默认情况下,所有的放缩都使用cv.INTER_LINEAR。
最后
以上就是纯真雪碧为你收集整理的Opencv 使用cv2改变视频分辨率和尺寸的全部内容,希望文章能够帮你解决Opencv 使用cv2改变视频分辨率和尺寸所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复