Raspberry Pi4にUSBカメラを2台接続し、写真撮影をしたい。
(ここに実現したいことを箇条書きで書いてください。)
- cv2を基にカメラ撮影を行い、指定先のフォルダに保存する。
前提
(ここに質問の内容を詳しく書いてください。)
USBカメラ2台をRaspberry Pi4に接続し指定先のフォルダに保存するプログラムを作成しています。
USBカメラ1台だとカメラも起動し、指定先のフォルダに保存する事が出来るのですが、USBカメラ2台同時に撮影を行うとエラーが出てしまします。
使用機器
Rasberry Pi4
Python3(3.9.2)
USBカメラ2台
USBキーボード
モニター
発生している問題・エラーメッセージ
[ WARN:0] global /tmp/pip-wheel-a8gfdc_n/opencv-python_13563f08137a4b20bc4dfee05bcbf854/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video1): can't open camera by index Traceback (most recent call last): File "/home/aaa/bbb/camera.py", line 10, in <module> cv2.imshow('カメラ画像2',frame2) cv2.error: OpenCV(4.5.1) /tmp/pip-wheel-a8gfdc_n/opencv-python_13563f08137a4b20bc4dfee05bcbf854/opencv/modules/highgui/src/window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'
該当のソースコード
import cv2 import datetime camera1 = cv2.VideoCapture(0) camera2 = cv2.VideoCapture(1) while True: ret1,frame1 = camera1.read() cv2.imshow('カメラ画像1',frame1) ret2,frame2 = camera2.read() cv2.imshow('カメラ画像2',frame2) key = cv2.waitKey(1)&0xFF if key == ord('q'): break if key == ord('s'): dt_now=datetime.datetime.now() path1=str(dt_now)+'-photo1.jpg' cv2.imwrite(r'/home/aaa/bbb/gazou/'+path1,frame1) dt_now=datetime.datetime.now() path2=str(dt_now)+'-photo2.jpg' cv2.imwrite(r'/home/aaa/bbb/gazou/'+path2,frame2) break camera1.release() camera2.release() cv2.destroyAllWindows()
試したこと
camera2 = cv2.VideoCapture(1)の()内の数字を2~4までそれぞれ変えたが変化なし。
Raspberry PiにUSBカメラを挿す場所が4か所あり、挿す場所を変えても変化なし。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2023/05/18 02:40