視頻剪切成圖像+圖像合成視頻+python


python編程,將視頻剪切成圖像,圖像再合成視頻

a. 視頻剪切成圖像:

import cv2  
import os
vidcap = cv2.VideoCapture('./video/7.mp4')  
success,image = vidcap.read()  
count = 0  
success = True  
savedir='./f3/'

if  not os.path.exists(savedir):
    os.mkdir(savedir)
while success:  
  success,image = vidcap.read()  
  cv2.imwrite(savedir+"7frame%d.jpg" % count, image)     # save frame as JPEG file  
  if cv2.waitKey(10) == 27:                       
      break  
  count += 1  

num=len(os.listdir(savedir))-1
os.remove(savedir+"7frame%d.jpg" % num)

注:

1、將 './video/7.mp4' 換成你的視頻路徑加名稱

2、將  './f3/' 換成你的圖像存儲路徑

3、"7frame%d.jpg" 表示每一幀的圖像名稱。第一幀圖像,這里命名為 "7frame1.jpg" ,你也可以換成自己喜歡的命名

4、下面這一句,注釋掉還是留着,取決與你的最后一張圖像是否可視,在我的工作中,最后一幀的圖像打不開,直接采用下面這句把最后一張圖像給刪除了

num=len(os.listdir(savedir))-1
os.remove(savedir+"7frame%d.jpg" % num)

b. 圖像合成視頻:

#!/usr/bin/env python
# -*-coding:utf-8-*-
import cv2
import os

fsp = 20
fourcc = cv2.VideoWriter_fourcc(*'avc1')
video_path = './hecheng.mp4' 
video_out = cv2.VideoWriter(video_path, fourcc, fsp, (1280,720)) 

img_path = "./f3/" 
for i in range(0,1200):
     if os.path.exists(img_path+"7frame"+str(i)+'.jpg'):
          frame = cv2.imread(img_path+"7frame"+str(i)+'.jpg')
          video_out.write(frame)
video_out.release()

注:

1、fsp表示幀率,即一秒鍾播放多少張圖像。

     播放快點(類似快進的效果),fsp設置大點。

     播放慢點(類似慢動作的效果),fsp設置小點。  

2、將'./hecheng.mp4'換成你想要的命名。

3、(1280,720)表示每一幀圖像的大小。具體如圖所示:

4、img_path = "./f3/" 是圖像的存儲路徑。即你將"./f3/"路徑下的圖像合成視頻

5、(0,1200)中,1200是一個數,需要大於等於"./f3/"路徑下圖像的數目。0固定不變。

6、"7frame"+str(i)+'.jpg'表示圖像名稱。和切圖時候的圖像命名一致。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM