4,269
社区成员




请问在while True循环里面调用cap.read()读取视频流,为什么内存会一直增大啊?主动释放了也没用
def test():
last_time = datetime.datetime.now()
count=0
cap = cv2.VideoCapture('rtsp://admin:XZXatc123.@192.168.111.252/live')
while True:
ret,frame=cap.read()
if not ret:
break
count += 1
if count % 3 != 0:
continue
frame_size=cv2.resize(frame,(1020,600))
results = model(frame_size)
results.pandas().xyxy[0]
cv2.imshow("FRAME",frame_size)
frame=None
frame_size=None
results=None
#torch.cuda.empty_cache()
current_time = datetime.datetime.now()
time_difference=current_time-last_time
if(time_difference.seconds>=60*20):
cap.release()
del cap
#cv2.destroyAllWindows()
gc.collect()
cap = cv2.VideoCapture('rtsp://admin:XZXatc123.@192.168.111.252/live')
last_time = datetime.datetime.now()
print("restart")
continue
if cv2.waitKey(1)&0xFF==27:
break
解决了吗?