質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.68%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

676閲覧

カメラ2台で同時写真撮影

world

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/05/18 01:05

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

guest

回答1

1

ベストアンサー

Bing AIの回答

Raspberry Piで複数のUSBカメラを使用する場合、OpenCVのVideoCapture関数に渡すデバイスIDは、常に同じとは限りません。¹ このため、複数のカメラを識別して使用するためには、別の方法が必要です。

例えば、Qiitaにある記事では、CV-camera-finderというツールを使用して、複数のWebカメラを識別して使用する方法が紹介されています。¹ このツールを使用することで、異なる種類のWebカメラを識別することができます。ただし、同じ種類のWebカメラを識別することはできません。

詳しい情報は、Qiitaの記事「【Python】opencvで複数のWebカメラを識別して使用したい」¹ を参照してください。

ソース: Bing との会話 2023/5/18
(1) 【Python】opencvで複数のWebカメラを識別して使用したい - Qiita. https://qiita.com/youichi_io/items/70446fb027b6e4c6efd6.
(2) 📷カメラモジュールを使ってOpenCVでキャプチャする - ⭐. https://zenn.dev/kotaproj/books/raspberrypi-tips/viewer/400_kiso_camera.
(3) Raspberry PiとPythonで複数のUSBカメラを取り扱う方法 - Qiita. https://qiita.com/sudamasahiko/items/09c19addcbf23816390b.

投稿2023/05/18 01:30

can110

総合スコア38011

AbeTakashi👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答へのコメント

world

2023/05/18 02:40

ご回答頂き有難うございます。 同じUSBカメラ2台ではできない事を、はじめて知りました。 以前Ubuntu上で同じUSBカメラを2台使う事が出来ていたので、できるのでは?と思ったのですが。 有難うございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.68%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。