有时候,如果你在OpenCV中做图像处理的时候,如果图像处理比较耗时,就导致存在VideoCapture缓存区的图像队列越积越多。 你就会发现延时好高啊,过了半天画面才更新,实际的画面与VideoCapture的实际画面时差越拉越大。
这个问题,可以通过缩小缓冲区尺寸来解决。
cap.set 设定VideoCapture的各种属性,这里指定缓冲区的尺寸为1:
cap.set(cv2.CAP_PROP_BUFFERSIZE,1)
完整一些的代码片段:
# 摄像头的IP地址
# http://用户名:密码@IP地址:端口/
ip_camera_url = 'http://admin:admin@192.168.2.237:8081/'
# 创建一个VideoCapture
cap = cv2.VideoCapture(ip_camera_url)
# 设置缓存区的大小 !!!
cap.set(cv2.CAP_PROP_BUFFERSIZE,1)
ref:http://www.1zlab.com/wiki/python-opencv-tutorial/opencv-make-phone-as-ip-camera/