opencv读取摄像头视频帧延迟,导致程序崩溃
- opencv读取摄像头视频帧延迟原因
- 解决方法
opencv读取摄像头视频帧延迟原因
相比于图像处理等后续操作,opencv读取帧的速度往往很快,这就导致处理速度不及时,线程存储满了导致程序崩溃。
解决方法
将读取视频帧的代码放在线程中而不是主进程中。
改进前
import cv2
from QR_recognition import *
camera_path='rtsp://192.168.1.11:554/main'
cap = (camera_path)
while True:
if ():
ret,img=() # img 就是一帧图片
rval, frame = ()
get_QRinfo(frame)
else:
print('视频打开失败!')
改进后
import cv2
from QR_recognition import *
while True:# 循环读取当前视频帧
camera_path = 'rtsp://192.168.1.11:554/main'
cap = (camera_path)
if ():
ret,img=() # img 就是当前一帧图片
get_QRinfo(img)
else:
print('视频打开失败!')
即每次读取都是当前的视频帧。不会因为延迟导致程序崩溃。