使用python-cv2如何实现视频的分解与合成?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
1.视频分解图片
我们使用cv2.VideoCapture来读取视频
import cv2 cap = cv2.VideoCapture('1.mp4') isOpened = cap.isOpened # 判断视频是否可读 print(isOpened) fps = cap.get(cv2.CAP_PROP_FPS) # 获取图像的帧,即该视频每秒有多少张图片 width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取图像的宽度和高度 height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) print(fps, width, height) i = 0 while(isOpened): if i == 10: break # 读取每一帧,falg表示是否读取成功,frame为图片的内容 (flag, frame) = cap.read() filename = 'img' + str(i) + '.jpg' # 文件的名字 if flag: cv2.imwrite(filename, frame, [cv2.IMWRITE_JPEG_QUALITY,100]) # 保存图片 i += 1
2.图片合成视频
我们使用cv2.VideoWrite方法来创建一个video写入器
用cv2.VideoWriter_fourcc创建视频编解码器
要创建mp4类型的视频文件,视频编解码器为cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')
import cv2 img = cv2.imread('img0.jpg') width = img.shape[0] height = img.shape[1] size = (height, width) print(size) videoname = "2.mp4" # 要创建的视频文件名称 fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G') # 编码器 fps = 5 # 帧率 # 1.要创建的视频文件名称 2.编码器 3.帧率 4.size videoWrite = cv2.VideoWriter(videoname,fourcc, fps, size) for i in range(10): filename = 'img' + str(i) + '.jpg' img = cv2.imread(filename) videoWrite.write(img) # 写入
关于使用python-cv2如何实现视频的分解与合成问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。