天天看點

13行代碼實作:Python實時視訊采集(附源碼)實時:視訊圖像采集(opencv)從視訊流循環幀清理視窗

13行代碼實作:Python實時視訊采集(附源碼)

一、前言

本文是《人臉識别完整項目實戰》系列博文第3部分:程式設計篇(Python版),第1節《Python實時視訊采集程式設計》,本章内容系統介紹:基于Python+opencv如何實作實時視訊采集。

完整的相關内容已錄制成視訊課程,點選跳轉:《人臉識别完整項目實戰(附源碼)》

整個《人臉識别完整項目實戰》系統架構結構如下圖所示:

項目概述篇:系統介紹人臉識别項目的系統架構設計、項目關鍵技術說明、項目業務需求分析、項目業務流程設計;

環境部署篇:提供C++和Python兩種程式設計語言的版本,系統介紹項目開發環境概述、DLib架構源碼編譯、項目工程檔案建立、項目開發環境配置、項目性能優化設定;

程式設計篇:從實時視訊采集開始,涵蓋人臉區域檢測、人臉特征點标定、人臉對齊、人臉比對和活體檢測等全部技術環節的代碼設計、運作示範和執行結果輸出;

模型訓練篇:基于人臉識别區域檢測和人倆識别特征點标定兩個應用場景,介紹資料樣本采集、算法模型訓練和算法模型測試的過程,讓大家都人臉識别有一個完整的直覺的認識;

算法原理篇:基于人臉識别區域檢測和人倆識别特征點标定兩個應用場景,人臉區域檢測和人臉特征點标定的算法原理和實作機制,讓大家對人臉識别與機器學習、深度學習進行有效關聯;

學習架構篇:系統介紹主流深度學習架構,重點就本課程用到Dlib深度學習架構進行介紹,通過dlib深度學習實戰案例1和dlib深度學習實戰案例2,兩個完整的案例,讓大家對dlib的深度學習架構有一個直覺的認識;

二、正文

2.1 程式邏輯

Python實時視訊采集程式主要流程共分為10個步驟,具體如下圖所示:
           

流程描述:

庫檔案導入:導入程式依賴的python安裝包;

攝像頭管理對象建立和初始化:是對opencv VideoCapture對象的建立和初始化,通過它打開攝像頭裝置;

啟動循環監控:循環處理每一幀圖檔;

圖像抓拍:利用opencv提供的攝像頭管理裝置,進行逐幀圖像内容的抓取,然後進行處理;

圖像視窗顯示:利用opencv的視窗對象,進行抓拍内容的顯示。

等待使用者輸入:利用opencv提供的鍵盤輸入監控程式,擷取使用者指令。

攝像頭釋放:收到退出指令後,釋放攝像頭管理裝置資源。

2.2 接口說明

python實時視訊監控采集功能的實作,主要是采用了opencv開源架構提供的攝像頭管理類:VideoCapture。該類的主要方法和屬性如下圖所示:
           

opencv的攝像頭管理類,我們主要應用了其open(打開攝像頭)、read(讀取每一幀)、release(釋放裝置)等函數功能能。

2.3 源碼設計

源碼的執行,需要導入opencv庫檔案,直接執行:pip install opencv 即可實作。具體程式代碼如下圖所示:

實時:視訊圖像采集(opencv)

import cv2

cap = cv2.VideoCapture(0)

從視訊流循環幀

while True:

ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow("Frame", frame)
# 退出:Q
if cv2.waitKey(1) & 0xFF == ord('q'):
    break           

清理視窗

cv2.destroyAllWindows()

2.4 運作效果

​三、未完待續

本文是《人臉識别完整項目實戰》系列博文第3部分:程式設計篇(Python版)第一節《實時視訊采集程式設計(python)》,全文共53個章節,持續更新,敬請關注。人臉識别技術交流QQ群:859860225 。

作者:張子良

出處:

http://www.cnblogs.com/hadoopdev