您現在的位置是:首頁 > 單機遊戲首頁單機遊戲
如何使用OpenCV在Python中訪問IP攝像頭
- 2021-10-10
ip攝像頭怎麼用
在此文章中,我將解釋如何在Python中設定對IP攝像機流的訪問。
首先,必須找出網址流是什麼。透過在建構函式中提供攝像機的網址流,可以在OpenCV中訪問IP攝像機
cv2。VideoCapture
。可以使用某些網路掃描實用程式(例如在linux上的
arp-scan
)找到攝像機的IP地址。網址進一步的細節,如
Protocol
,
Credentials
和
Channel
應該可以在相機說明書或軟體/手機應用程式中找到。我們透過在網路上搜索相機的型號來找到相機的網址流。
通常,攝像機使用RTSP或HTTP協議來傳輸影片。IP攝像機網址流的示例如下所示:rtsp://192。168。1。64/1
因此,可以透過以下程式碼實現使用OpenCV從相機獲取快照:
capture = cv2。VideoCapture(‘rtsp://192。168。1。64/1’)
由於大多數IP攝像機都有用於訪問影片的使用者名稱和密碼。在這種情況下,必須在網址流中提供憑據,如下所示:
capture = cv2。VideoCapture(‘rtsp://[username]:[password]@192。168。1。64/1’)
這是整個指令碼,可以實現透過OpenCV捕獲來自攝像機的影片流:
import cv2#print(“Before URL”)cap = cv2。VideoCapture(‘rtsp://admin:123456@192。168。1。216/H264?ch=1&subtype=0’)#print(“After URL”)while True: #print(‘About to start the Read command’) ret, frame = cap。read() #print(‘About to show frame of Video。’) cv2。imshow(“Capturing”,frame) #print(‘Running。。’) if cv2。waitKey(1) & 0xFF == ord(‘q’): breakcap。release()cv2。destroyAllWindows()
我們需要啟動
‘While True’
迴圈以顯示流。在迴圈中啟動它很重要,這樣可以中斷迴圈以按需釋放流。
命令
‘cv2。imshow’
用於顯示影片流。
命令
‘cv2。imshow’
帶有兩個引數。第一個是要顯示在視窗頂部的名稱。可以將其更改為所需的任何內容,但是最好擁有它。第二個是儲存捕獲影片流的物件。在此示例中,它稱為“幀”。
然後,這個指令碼會查詢按鍵。因此,當按下q鍵時,它將釋放捕獲的流,然後執行
‘cv2。destroyAllWindows()’
。如果指令碼中沒有該部分,則可能最終導致流在PC上引起大量延遲,直到強制關閉該流或該流因自然原因而死亡。