我正在制作一个使用网络摄像头实时跟踪对象的程序。结果显示总是落后几帧。例如,当我将相机移动到指向新位置时,它仍会显示几帧的第一个位置。
这是我的程序,它应该找到框架中的圆圈并返回带有圆圈的图像:
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles() # parameters removed
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
#draw circle
cv2.circle() # parameters removed
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0XFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
正如您所看到的,处理每个帧需要一些时间。我预计它会不稳定,但结果会显示几秒钟前的图像。