Python OpenCV实现视频分帧与多帧合成视频完整代码示例
本文提供基于Python和OpenCV的视频处理完整代码。第一部分演示如何使用VideoReader将avi视频逐帧保存为jpg图片,第二部分展示如何读取多张png图片并合成指定帧率的avi视频。代码包含完整的参数设置与异常处理逻辑,适用于基础视频分析场景。
为了节省篇幅,以下直接展示核心实现代码。
视频分帧实现
首先介绍视频分帧的具体实现方法:
import cv2
vidcap = cv2.VideoCapture('005.avi')
success,image = vidcap.read()
count = 0
success = True
while success:
success,image = vidcap.read()
cv2.imwrite("frame%d.jpg" % count, image) # save frame as JPEG file
if cv2.waitKey(10) == 27:
break
count += 1
多帧合成视频实现
接着介绍如何将多帧图片合成视频的操作:
import cv2
def images_to_video():
fps = 30 # 帧率
num_frames = 500
img_array = []
img_width = 720
img_height = 1280
for i in range(num_frames+1):
filename = "./frames/"+str(i)+".png"
img = cv2.imread(filename)
if img is None:
print(filename + " is non-existent!")
continue
img_array.append(img)
out = cv2.VideoWriter('demo.avi', cv2.VideoWriter_fourcc(*'DIVX'), fps,(img_width,img_height))
for i in range(len(img_array)):
out.write(img_array[i])
out.release()
def main():
images_to_video()
if __name__ == "__main__":
main()
以上关于Python视频分帧及多帧合成视频的实例分享完毕,希望能为相关开发者提供实用参考。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









