您現在的位置是:首頁 > 單機遊戲首頁單機遊戲

如何使用OpenCV在Python中訪問IP攝像頭

簡介透過在建構函式中提供攝像機的網址流,可以在OpenCV中訪問IP攝像機cv2

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上引起大量延遲,直到強制關閉該流或該流因自然原因而死亡。

Top