打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python将视频切分成帧&&帧合成视频

一、视频切分成帧

  1. import cv2
  2. def video2frame(videos_path,frames_save_path,time_interval):
  3. '''
  4. :param videos_path: 视频的存放路径
  5. :param frames_save_path: 视频切分成帧之后图片的保存路径
  6. :param time_interval: 保存间隔
  7. :return:
  8. '''
  9. vidcap = cv2.VideoCapture(videos_path)
  10. success, image = vidcap.read()
  11. count = 0
  12. while success:
  13. success, image = vidcap.read()
  14. count += 1
  15. if count % time_interval == 0:
  16. cv2.imencode('.jpg', image)[1].tofile(frames_save_path + "/frame%d.jpg" % count)
  17. # if count == 20:
  18. # break
  19. print(count)
  20. if __name__ == '__main__':
  21. videos_path = 'D:\测试\测试视频01.mp4'
  22. frames_save_path = 'D:\测试\测试视频01'
  23. time_interval = 2#隔一帧保存一次
  24. video2frame(videos_path, frames_save_path, time_interval)

二、帧合成视频

  1. import cv2
  2. import os
  3. import numpy as np
  4. from PIL import Image
  5. def frame2video(im_dir,video_dir,fps):
  6. im_list = os.listdir(im_dir)
  7. im_list.sort(key=lambda x: int(x.replace("frame","").split('.')[0])) #最好再看看图片顺序对不
  8. img = Image.open(os.path.join(im_dir,im_list[0]))
  9. img_size = img.size #获得图片分辨率,im_dir文件夹下的图片分辨率需要一致
  10. # fourcc = cv2.cv.CV_FOURCC('M','J','P','G') #opencv版本是2
  11. fourcc = cv2.VideoWriter_fourcc(*'XVID') #opencv版本是3
  12. videoWriter = cv2.VideoWriter(video_dir, fourcc, fps, img_size)
  13. # count = 1
  14. for i in im_list:
  15. im_name = os.path.join(im_dir+i)
  16. frame = cv2.imdecode(np.fromfile(im_name, dtype=np.uint8), -1)
  17. videoWriter.write(frame)
  18. # count+=1
  19. # if (count == 200):
  20. # print(im_name)
  21. # break
  22. videoWriter.release()
  23. print('finish')
  24. if __name__ == '__main__':
  25. im_dir = 'E:/测试/图片/'#帧存放路径
  26. video_dir = 'E:\测试/test.avi' #合成视频存放的路径
  27. fps = 30 #帧率,每秒钟帧数越多,所显示的动作就会越流畅
  28. frame2video(im_dir, video_dir, fps)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使用opencv-python录制屏幕画面
用python轻轻松松写一个录屏工具
OpenCV成长之路(10):视频的处理 - 博客 - 伯乐在线
几行代码,实现Python捕获、播放和保存摄像头视频
H264码流结构分析,使用FFmpeg
OpenCV读写视频文件解析(二)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服