我有一个下面给出的代码。哪个工作正常。它需要几帧后几秒钟,然后相机关闭,相机再次打开,并采取一对帧。下面给出的代码在我的桌面上正常工作,每当我在树莓派上测试该代码for循环的第一次迭代运行良好,但在for循环的第二次迭代中,它不会给VideoCapture返回false
import cv2
import time
timeout=time.time()+10
for f in range(3):
cap = cv2.VideoCapture(camera_port)
count = 1
while True:
ret, img = cap.read()
print(ret)
cv2.imshow('image', img)
cv2.imwrite('Datasets/T' + str(f + 1) + '/' + str(count) + '.tif', img)
print(cap.get(cv2.CAP_PROP_FPS))
if time.time() > timeout:
break
if cv2.waitKey(1) & 0xFF == ord('q'):
break
count = count + 1
for _ in range(10):
cv2.destroyAllWindows()
if f!=2-1:
cap.release()
time.sleep(delay_after_one_video)
cap=cv2.VideoCapture(camera_port)
timeout=time.time()+10
答案 0 :(得分:0)
我无法评论,所以我发了一个答案。
似乎你无法释放相机资源。(如果是这样,你无法设置相机的属性)尝试自己构建OpenCV,记得检查v4l库。