0
以下のコードがあります。それはfine.ieそれはフレームの数秒後にカメラの電源をオフにし、カメラの電源を入れて、フレームのカップルを取るfine.ieの数を取ります。以下のコードはラズベリーパイのコードをテストするたびに、私のデスクトップ上で正常に動作しますforループの最初の繰り返しがうまく動作しますが、forループの2回目の反復で、それはVideoCaptureが偽opencvで間隔を置いて撮影したラズベリのカメラフレーム数
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
videocapture()オブジェクトをリベースして再作成する理由はありますか?それを接続したままにしておくと、画像が必要なときにread()を呼び出すほうが簡単です。カメラをオフにするには –
を使用してください。オブジェクトを再作成してください...バッファも空にしておきます。 –
ループ内で 'cv2.destroyAllWindows'を使っているのはなぜですか?関数を一度呼び出すだけで済みます。 – zindarod