python opencv 按一定間隔截取視頻幀


前言
關於opencv
OpenCV 是 Intel 開源計算機視覺庫 (Computer Version) 。它由一系列 C 函數和少量 C++ 類構成,實現了圖像處理和計算機視覺方面的很多通用算法。

 

OpenCV 擁有包括 300 多個 C 函數的跨平台的中、高層 API 。它不依賴於其它的外部庫 —— 盡管也可以使用某些外部庫。 OpenCV 對非商業應用和商業應用都是免費 的。同時 OpenCV 提供了對硬件的訪問,可以直接訪問攝像頭,並且 opencv 還提供了一個簡單的 GUI(graphics user interface) 系統 :highgui 。 我們就通過 OpenCV 提供的一些方法來構造出這個人臉檢測 ( face detection ) 程序來。

opencv的python包裝
 

OpenCV 本身是有 C/C++ 編寫的,如果要在其他語言中使用,我們可以通過對其動態鏈接庫文件進行包裝即可,幸運的是, Python 下有很多個這樣的包裝,本文中使用的是 Cvtypes 。

 

事實上,在 Python 中很多的包都是來自第三方的,比如 PIL(Python Image Library) 即為 C 語言實現的一個圖形處理包,被包裝到了 Python 中,這些包裝可以讓你像使用 Python 的內建函數一樣的使用這些 API 。

 

這個例子使用python編程:用opencv按一定間隔截取視頻幀,並保存為圖片。

import cv2
 
       
vc = cv2.VideoCapture('Test.avi') #讀入視頻文件
c=1
 
if vc.isOpened(): #判斷是否正常打開
    rval , frame = vc.read()
else:
    rval = False
 
timeF = 1000  #視頻幀計數間隔頻率
 
while rval:   #循環讀取視頻幀
    rval, frame = vc.read()
    if(c%timeF == 0): #每隔timeF幀進行存儲操作
        cv2.imwrite('image/'+str(c) + '.jpg',frame) #存儲為圖像
    c = c + 1
    cv2.waitKey(1)
vc.release()
 

  

  

 



原文:https://blog.csdn.net/xinxing__8185/article/details/48440133


免責聲明!

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



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