前言
RTSP(Real-Time Stream Protocol),即实时流传输协议,是目前市面上大多数网络摄像头都支持的协议,而OpenCV也支持通过RTSP协议读取网络摄像头捕捉的实时图像,使得获取、处理网络摄像头数据帧的复杂度大大降低。出于要求,需要通过OpenCV读取网络摄像头帧做一个目标检测Demo,做完之后记录一下OpenCV读取摄像头的Python代码。
OpenCV示例
使用OpenCV读取网络摄像头的代码如下所示:
import cv2
url = "rtsp://username:passwd@ip"
cap = cv2.VideoCapture(url)
while True:
ret, frame = cap.read()
if ret:
cv2.imshow("video", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
在使用前需要获取摄像头预设的IP地址ip
如192.168.1.108
、用户名username
如admin
和密码passwd
如123abc
。有些摄像头默认不打开RTSP协议,使用前还需先登陆摄像头平台找到相应设置打开。