python+opencv開啟網路攝影機,儲存視頻、拍照功能的實現

來源:互聯網
上載者:User

標籤:ras   否則   auto   方法   筆記   需要   視頻編碼   border   open   

本節主要學習的是通過

.VideoCapture()

調用網路攝影機讀取映像資料,以及使用

cap.set( propId , value ) 
cap.get( propId )

擷取或者更改視頻屬性。 
其中,propId 的值為 0 - 18,19個值並不是每個都可以進行修改,每個值對應的屬性以及功能如下如下:

參數 功能/意義
CV_CAP_PROP_POS_MSEC 0 視頻檔案的當前位置(以毫秒為單位)或視頻捕獲時間戳記。
CV_CAP_PROP_POS_FRAMES 1 基於0的索引將被解碼/捕獲下一幀。
CV_CAP_PROP_POS_AVI_RATIO 2 視頻檔案的相對位置:0 - 電影的開始,電影的1 - 結束。
CV_CAP_PROP_FRAME_WIDTH 3 視頻每一幀的寬。
CV_CAP_PROP_FRAME_HEIGHT 4 視頻每一幀的高。
CV_CAP_PROP_FPS 5 視頻的幀速。
CV_CAP_PROP_FOURCC 6 4個字元表示的視頻編碼器格式。
CV_CAP_PROP_FRAME_COUNT 7 視頻的幀數。
CV_CAP_PROP_FORMAT 8 byretrieve()返回的Mat對象的格式。
CV_CAP_PROP_MODE 9 指示當前捕獲模式的後端特定值。
CV_CAP_PROP_BRIGHTNESS 10 映像的亮度(僅適用於相機)。
CV_CAP_PROP_CONTRAST 11 映像對比(僅適用於相機)。
CV_CAP_PROP_SATURATION 12 映像的飽和度(僅適用於相機)。
CV_CAP_PROP_HUE 13 映像的色相(僅適用於相機)。
CV_CAP_PROP_GAIN 14 映像的增益(僅適用於相機)。
CV_CAP_PROP_EXPOSURE 15 曝光(僅適用於相機)。
CV_CAP_PROP_CONVERT_RGB 16 表示映像是否應轉換為RGB的布爾標誌。
CV_CAP_PROP_WHITE_BALANCE 17 目前不支援
CV_CAP_PROP_RECTIFICATION 18 立體攝像機的整流標誌(注意:只有當前支援DC1394 v 2.x後端)

代碼如下:

#coding:utf-8import cv2import numpy as np"""函數名:cv2.VideoCapture()功  能:通過網路攝影機捕獲即時映像資料傳回值:有參數一:網路攝影機代號,0為預設網路攝影機,筆記本內建網路攝影機一般為 0       或者填寫視頻名稱直接載入本地視頻檔案"""cap = cv2.VideoCapture(0)#建立一個 VideoCapture 對象"""函數名:cap.set( propId , value )功  能:設定視頻參數。設定視頻的寬高值和網路攝影機有關       使用筆記本內建網路攝影機時只能設定為 1280*720 以及 640*480,哪怕設定值不同時都會自動校正過來,並且仍然返回 True傳回值:布爾值參數一:需要設定的視頻參數參數二:設定的參數值"""cap.set(3,480)cap.set(4,320)flag = 1;#設定一個標誌,用來輸出視頻資訊"""函數名:cv2.isOpened()功  能:返回一個布爾值( True / False ),檢查是否初始化成功,成功返回 True傳回值:布爾值"""while(cap.isOpened()):#迴圈讀取每一幀    """    函數名:cap.read()    功  能:返回兩個值           先返回一個布爾值,如果視頻讀取正確,則為 True,如果錯誤,則為 False,也可用來判斷是否到視頻末尾           再返回一個值,為每一幀的映像,該值是一個三維矩陣           通用接收方法為:           ret,frame = cap.read();           這樣 ret 儲存布爾值,frame 儲存映像           若使用一個變數來接收兩個值,如           frame = cap.read()           則 frame 為一個元組,原來使用 frame 處需更改為 frame[1]    傳回值:R1:布爾值           R2:映像的三維矩陣    """    ret_flag , Vshow = cap.read()    #gray = cv2.cvtColor(Vshow,cv2.COLOR_BGR2GRAY)    #cv2.imshow("Gray",gray)    cv2.imshow("Capture_Test",Vshow)  #視窗顯示,顯示名為 Capture_Test    k = cv2.waitKey(1) & 0xFF #每幀資料延時 1ms,延時不能為 0,否則讀取的結果會是靜態幀    if  k == ord(‘s‘):  #若檢測到按鍵 ‘s’,列印字串        """        函數名:cap.get( propId )        功  能:查詢視頻的參數        傳回值:無        參數一:查詢的視頻參數,其中部分值可以使用 cap.set() 進行修改        """        print(cap.get(3));        print(cap.get(4));    elif k == ord(‘q‘): #若檢測到按鍵 ‘q’,退出        breakcap.release() #釋放網路攝影機cv2.destroyAllWindows()#刪除建立的全部視窗

 

python+opencv開啟網路攝影機,儲存視頻、拍照功能的實現

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.