'''
Opencv-python读取IP摄像头视频流/USB摄像头
'''

import cv2

# 创建一个窗口 名字叫做Window
cv2.namedWindow('Window', flags=cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO | cv2.WINDOW_GUI_EXPANDED)

'''
#打开USB摄像头
cap = cv2.VideoCapture(0)
'''

# 摄像头的IP地址,http://用户名:密码@IP地址:端口/
#ip_camera_url = 'rtsp://admin:admin@10.106.137.190:8554/live'

ip_camera_url = 'rtsp://admin:admin@192.168.31.104:8554/live'


# 创建一个VideoCapture
cap = cv2.VideoCapture(ip_camera_url)

print('IP摄像头是否开启: {}'.format(cap.isOpened()))

# 显示缓存数
print(cap.get(cv2.CAP_PROP_BUFFERSIZE))
# 设置缓存区的大小
cap.set(cv2.CAP_PROP_BUFFERSIZE,1)

#调节摄像头分辨率
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)

print(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

#设置FPS
print('setfps', cap.set(cv2.CAP_PROP_FPS, 25))
print(cap.get(cv2.CAP_PROP_FPS))

while(True):
    #逐帧捕获
    ret, frame = cap.read()  #第一个参数返回一个布尔值(True/False),代表有没有读取到图片;第二个参数表示截取到一帧的图片
    # gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('Window', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

#当一切结束后,释放VideoCapture对象
cap.release()
cv2.destroyAllWindows()

运行结果:

IP摄像头是否开启: True
0.0
640.0
480.0
setfps False
180000.0

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐