最近在學習opencv時用到將視頻抽幀的問題。用opencv模塊可以很方便的做一些跟視頻圖像分析的研究。下面我借鑒了opencv項目的開源代碼改成了demo腳本。
github資源地址
# -*- coding:utf-8 -*-
'''
Simple Cam Test - BGR and Gray
Create by pythonprogramming.net ==> See the tutorial here:
https://pythonprogramming.net/loading-video-python-opencv-tutorial
Adapted by Marcelo Rovai - MJRoBot.org @8Feb18
'''
import numpy as np
import cv2
from hashlib import md5
import os
cap = cv2.VideoCapture(0)
cap.set(1, int(cap.get(7)/2)) #獲取視頻的中間幀
'''
在當前執(zhí)行文件環(huán)境下,創(chuàng)建抽幀圖片存儲文件夾
'''
path='facetmp'
os.mkdir(path)
'''
從攝像頭獲取視頻流
'''
while(True):
ret, frame = cap.read()
#print(ret,frame)
frame = cv2.flip(frame, 1)
#print(frame)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('welcome', frame)
cv2.imshow('Gray Windows', gray)
filepath='facetmp/{}.{}'.format(md5(frame).hexdigest(),'jpg')
cv2.imwrite(filepath, frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
timg.jpg