目的
もともとwebカメラを一台で使うプログラムを改造して、二台で使えるようにしようとしています。ひとまず、cv2.videocaptureで二つのカメラを読み込み、うち、一台の映像を出力することから始めました。
問題
ですが、
終了しますのメッセージが出るか、can't open camera by indexという警告が出ます。
また、usbを指して一回目に実行すると、無事、一台の映像が出るが、二回目に実行するとメッセージが出るか、警告が出ます。
試したこと
webカメラの番号を調べました。(以下、コマンドと写真)
素人の考えとして
1.なぜ、0番と1番ではないのか。(二番というのは、色々試していて引数を2にしたら読み込めることに気づきました)
2.そもそもvideo22などという大きな数字がなぜ出てくるのか
という二点が、このプログラムのエラーにかかわっているのではないかと考えています。
どこを変更すれば、安定して、2台のカメラ映像が読み込め、うち、一台を表示できるのかを教えていただきたいです。
実際のプログラム
python
1!/usr/bin/env python3 2 -*- coding: utf-8 -*- 3""" 4Created on Sun May 22 11:18:37 2022 5 6@author: pi 7""" 8 9import os 10import sys 11import cv2 12 13if __name__ == "__main__": 14 DEVICE_NUMBER1 =0 15 DEVICE_NUMBER2 =2 16 DST_DIRNAME = "./images" 17 18 capture1 = cv2.VideoCapture(DEVICE_NUMBER1) 19 capture2 = cv2.VideoCapture(DEVICE_NUMBER2) 20 if not capture1.isOpened() or capture2.isOpened(): 21 print("終了します", file=sys.stderr) 22 sys.exit(1) 23 24 fps1 = int(capture1.get(cv2.CAP_PROP_FPS)) 25 while True: 26 _, frame = capture1.read() 27 if frame is None: 28 continue 29 30 cv2.imshow('frame', frame) 31 key = cv2.waitKey(fps1) 32 if key == ord('s'): 33 break 34
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/18 02:00
退会済みユーザー
2022/06/18 02:59 編集
2022/08/01 09:44