環境
- Python 3.5.2
- OpenCV 3.1.0
コード
slicemovie.py
# -*- coding: utf-8 -*-
import cv2
cap = cv2.VideoCapture('Video_001.avi')
frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
fps = int(cap.get(cv2.CAP_PROP_FPS))
# 総フレーム数とFPSを確認
print("FRAME_COUNT: ", frame_count)
print("FPS: ", fps )
# 20分ぐらいのところまで早送り
start_pos = fps * (60 * 20)
# フレームポジションをファイル名にして、1秒4枚ぐらいの気持ちで画像保存
print("-- start")
for idx in range(start_pos, frame_count, round(fps/4)):
cap.set(cv2.CAP_PROP_POS_FRAMES, idx)
current_pos = str(int(cap.get(cv2.CAP_PROP_POS_FRAMES)))
cv2.imwrite("pict/" + current_pos +".jpg", cap.read()[1])
print("-- done.")
cap.release()
(おまけ)結果を横に適宜三枚繋いで一枚の画像を作る
‘Boring parking, active background’ ってタイトル、なんだかいいですよね。
concatenate.py
# -*- coding: utf-8 -*-
import cv2
import numpy as np
print ("start.")
img1= cv2.imread("30000.jpg")
img2= cv2.imread("30666.jpg")
img3= cv2.imread("32544.jpg")
vis = np.concatenate((img1, img2, img3), axis=1)
cv2.imwrite('out.jpg', vis)
print ("done.")