欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python通過cv2讀取多個USB攝像頭

 更新時間:2019年08月28日 12:05:45   作者:henry.Woo  
這篇文章主要為大家詳細介紹了Python通過cv2讀取多個USB攝像頭,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Python通過cv2讀取多個USB攝像頭的具體代碼,供大家參考,具體內容如下

通過 cv2 可以輕易的拿到攝像頭數(shù)據(jù)。
比如以下幾步就能打開攝像頭顯示,并通過 q 鍵保存圖片

import cv2

capture = cv2.VideoCapture(0)
# 打開自帶的攝像頭
if capture.isOpened():
 # 以下兩步設置顯示屏的寬高
 capture .set(cv2.CAP_PROP_FRAME_WIDTH, 640)
 capture .set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
 
 # 持續(xù)讀取攝像頭數(shù)據(jù)
 while True:
  read_code, frame = capture.read()
  if not read_code:
   break
  cv2.imshow("screen_title", frame)
  # 輸入 q 鍵,保存當前畫面為圖片
  if cv2.waitKey(1) == ord('q'):
   # 設置圖片分辨率
   frame = cv2.resize(frame, (1920, 1080))
   cv2.imwrite('pic.jpg', frame)
   break
 # 釋放資源  
 capture.release()
 cv2.destroyWindow("screen_title")  

現(xiàn)在,接入了一個 USB 攝像頭,并且希望通過代碼同時操作它們,如何實現(xiàn)?
觀察到 capture 的 open 函數(shù),傳入了攝像頭的編號,增加的攝像頭編號是遞增的。

于是修改如下

import cv2

capture = cv2.VideoCapture(0)
capture_usb = cv2.VideoCapture(1)
# 打開自帶的攝像頭
if capture.isOpened():
 if capture_usb.isOpened():
 # 以下設置顯示屏的寬高
 capture.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
 capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
 capture_usb.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
 capture_usb.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
 
 # 持續(xù)讀取攝像頭數(shù)據(jù)
 while True:
  read_code, frame = capture.read()
  read_code2, frame2 = capture_usb.read()
  if not read_code or not read_code2:
   break
  cv2.imshow("screen_title", frame)
  cv2.imshow("screen_title_usb", frame2)
  # 輸入 q 鍵,保存當前畫面為圖片
  if cv2.waitKey(1) == ord('q'):
   # 設置圖片分辨率
   frame = cv2.resize(frame, (1920, 1080))
   cv2.imwrite('pic.jpg', frame)
   capture_usb.release()
   break
 # 釋放資源  
 capture.release()
 cv2.destroyWindow("screen_title")

盡管這樣已經(jīng)可以同時操作多個攝像頭,但如果再接入一個 USB 攝像頭,我們無法區(qū)分哪一個編號值代表哪個 USB 設備。

檢查了實現(xiàn)的源碼 (見:cap_8cpp_source.html)

open 函數(shù)確實只接收索引參數(shù),并沒有其它的同名實現(xiàn)。如果想要通過類似硬件 id 來唯一確定參數(shù),需要單獨實現(xiàn)這樣的方法。

但通過分析源碼發(fā)現(xiàn),getAvailableBackends_CaptureByIndex() 中間有調用到這樣的方法,于是大膽猜測攝像頭信息應該按照 USB 接入順序保存在一個數(shù)據(jù)結構中,因此可以假定按設備插入的先后順序來判定使用哪個攝像頭。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 使用Python對Dicom文件進行讀取與寫入的實現(xiàn)

    使用Python對Dicom文件進行讀取與寫入的實現(xiàn)

    這篇文章主要介紹了使用Python對Dicom文件進行讀取與寫入的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 使用 PyTorch 實現(xiàn) MLP 并在 MNIST 數(shù)據(jù)集上驗證方式

    使用 PyTorch 實現(xiàn) MLP 并在 MNIST 數(shù)據(jù)集上驗證方式

    今天小編就為大家分享一篇使用 PyTorch 實現(xiàn) MLP 并在 MNIST 數(shù)據(jù)集上驗證方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python學習之while 循環(huán)語句

    Python學習之while 循環(huán)語句

    這篇文章主要給大家介紹了關于Python中while循環(huán)語句的相關資料,使用while循環(huán)語句可以解決程序中需要重復執(zhí)行的操作,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-10-10
  • python統(tǒng)計指定目錄內文件的代碼行數(shù)

    python統(tǒng)計指定目錄內文件的代碼行數(shù)

    這篇文章主要介紹了python統(tǒng)計指定目錄內文件的代碼行數(shù)
    2019-09-09
  • numpy中tensordot的用法

    numpy中tensordot的用法

    本文主要介紹了numpy中tensordot的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • Python實現(xiàn)強制復制粘貼的示例詳解

    Python實現(xiàn)強制復制粘貼的示例詳解

    下個文檔還要馬內?還好我會Python,本文就來教大家來一手如何利用Python實現(xiàn)強制復制粘貼。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-12-12
  • Python網(wǎng)絡爬蟲之HTTP原理

    Python網(wǎng)絡爬蟲之HTTP原理

    在寫爬蟲之前,我們還需要了解一些基礎知識,如HTTP原理、網(wǎng)頁的基礎知識、爬蟲的基本原理、Cookies的基本原理等。本文中,我們就對這些基礎知識做一個簡單的總結,需要的朋友參考一下
    2023-04-04
  • python去除空格,tab制表符和\n換行符的小技巧分享

    python去除空格,tab制表符和\n換行符的小技巧分享

    這篇文章主要介紹了python去除空格,tab制表符和\n換行符的小技巧,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python關于集合的知識案例詳解

    python關于集合的知識案例詳解

    這篇文章主要介紹了python關于集合的知識,包括集合的基本信息和集合的基本操作,通過案例詳解給大家介紹的非常詳細,需要的朋友可以參考下
    2021-05-05
  • pyinstaller打包可執(zhí)行程序過程中的常見錯誤解決

    pyinstaller打包可執(zhí)行程序過程中的常見錯誤解決

    這篇文章主要介紹了pyinstaller打包可執(zhí)行程序過程中的常見錯誤解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論