在raspberrypi

时间:2017-10-18 16:59:41

标签: python opencv

我有一个下面给出的代码。哪个工作正常。它需要几帧后几秒钟,然后相机关闭,相机再次打开,并采取一对帧。下面给出的代码在我的桌面上正常工作,每当我在树莓派上测试该代码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

1 个答案:

答案 0 :(得分:0)

我无法评论,所以我发了一个答案。

似乎你无法释放相机资源。(如果是这样,你无法设置相机的属性)尝试自己构建OpenCV,记得检查v4l库。