python使用opencv按一定間隔截取視頻幀
關(guān)于opencv
OpenCV 是 Intel 開源計算機(jī)視覺庫 (Computer Version) 。它由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,實現(xiàn)了圖像處理和計算機(jī)視覺方面的很多通用算法。
OpenCV 擁有包括 300 多個 C 函數(shù)的跨平臺的中、高層 API 。它不依賴于其它的外部庫 —— 盡管也可以使用某些外部庫。 OpenCV 對非商業(yè)應(yīng)用和商業(yè)應(yīng)用都是免費 的。同時 OpenCV 提供了對硬件的訪問,可以直接訪問攝像頭,并且 opencv 還提供了一個簡單的 GUI(graphics user interface) 系統(tǒng) :highgui 。 我們就通過 OpenCV 提供的一些方法來構(gòu)造出這個人臉檢測 ( face detection ) 程序來。
opencv的python包裝
OpenCV 本身是有 C/C++ 編寫的,如果要在其他語言中使用,我們可以通過對其動態(tài)鏈接庫文件進(jìn)行包裝即可,幸運的是, Python 下有很多個這樣的包裝,本文中使用的是 Cvtypes 。
事實上,在 Python 中很多的包都是來自第三方的,比如 PIL(Python Image Library) 即為 C 語言實現(xiàn)的一個圖形處理包,被包裝到了 Python 中,這些包裝可以讓你像使用 Python 的內(nèi)建函數(shù)一樣的使用這些 API 。
這個例子使用python編程:用opencv按一定間隔截取視頻幀,并保存為圖片。
import cv2
vc = cv2.VideoCapture('Test.avi') #讀入視頻文件
c=1
if vc.isOpened(): #判斷是否正常打開
rval , frame = vc.read()
else:
rval = False
timeF = 1000 #視頻幀計數(shù)間隔頻率
while rval: #循環(huán)讀取視頻幀
rval, frame = vc.read()
if(c%timeF == 0): #每隔timeF幀進(jìn)行存儲操作
cv2.imwrite('image/'+str(c) + '.jpg',frame) #存儲為圖像
c = c + 1
cv2.waitKey(1)
vc.release()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python基礎(chǔ)教程之tcp socket編程詳解及簡單實例
這篇文章主要介紹了Python基礎(chǔ)教程之tcp socket編程詳解及簡單實例的相關(guān)資料,需要的朋友可以參考下2017-02-02
python爬蟲構(gòu)建代理ip池抓取數(shù)據(jù)庫的示例代碼
這篇文章主要介紹了python爬蟲構(gòu)建代理ip池抓取數(shù)據(jù)庫的示例代碼,幫助大家更好的使用爬蟲,感興趣的朋友可以了解下2020-09-09
Django之富文本(獲取內(nèi)容,設(shè)置內(nèi)容方式)
這篇文章主要介紹了Django之富文本(獲取內(nèi)容,設(shè)置內(nèi)容方式),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
python報錯TypeError: ‘NoneType‘ object is not subscriptable的解決
這篇文章主要給大家介紹了關(guān)于python報錯TypeError: ‘NoneType‘ object is not subscriptable的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

