質問編集履歴

2

「別のPythonプログラムの実行結果」を追記しました

2023/11/06 06:43

投稿

yyicp
yyicp

スコア75

test CHANGED
File without changes
test CHANGED
@@ -72,7 +72,11 @@
72
72
 
73
73
  デバイスマネージャ→カメラで、HD USB Cameraは3台とも正常動作していることを確認しました。
74
74
 
75
- [別のPythonプログラム](https://qiita.com/Gyutan/items/79b26bc8e97ee365c6c8)で、「Number of connected camera: 3」であること確認ました。
75
+ [別のPythonプログラム](https://qiita.com/Gyutan/items/79b26bc8e97ee365c6c8)を実行した結果は以下の通りです
76
+ port number 0 Find!
77
+ port number 1 Find!
78
+ port number 2 Find!
79
+ Number of connected camera: 3
76
80
 
77
81
  cv2.CAP_DSHOW(DirectShow)を明示的に指定して実行した結果、0と1には正しい画像が保存されていましたが、2には真っ暗な画像が保存されていました。ソースコードは以下の通りです。
78
82
 

1

cv2.CAP_DSHOW(DirectShow)を明示的に指定して実行した結果を追記しました

2023/11/06 06:19

投稿

yyicp
yyicp

スコア75

test CHANGED
File without changes
test CHANGED
@@ -3,11 +3,6 @@
3
3
  ウェブカメラ(0、1、2とします)は3台あって、各々PC本体のUSBポートまたはUSBハブに接続して使用します。
4
4
  0と1をPC本体のUSBポートに、2をUSBハブに接続すると3つの画面を順番に保存することができました。
5
5
  0をPC本体のUSBポートに、1と2をUSBハブに接続すると0と1の画面しか保存できず、2の画面は保存できず、下のようなエラーメッセージが出ました。原因と対策を教えてください。
6
-
7
-
8
-
9
-
10
-
11
6
 
12
7
 
13
8
  ### 発生している問題・エラーメッセージ
@@ -76,6 +71,30 @@
76
71
  ### 試したこと
77
72
 
78
73
  デバイスマネージャ→カメラで、HD USB Cameraは3台とも正常動作していることを確認しました。
74
+
79
75
  [別のPythonプログラム](https://qiita.com/Gyutan/items/79b26bc8e97ee365c6c8)で、「Number of connected camera: 3」であることを確認しました。
80
76
 
77
+ cv2.CAP_DSHOW(DirectShow)を明示的に指定して実行した結果、0と1には正しい画像が保存されていましたが、2には真っ暗な画像が保存されていました。ソースコードは以下の通りです。
81
78
 
79
+ ```Python
80
+ def job():
81
+ for camera_number in range(0, 3):
82
+ # for windows -> cv2.CAP_DSHOW
83
+ cap = cv2.VideoCapture(camera_number,cv2.CAP_DSHOW)
84
+ ret, frame = cap.read()
85
+
86
+ if camera_number==0:
87
+ strdate0=datetime.datetime.now().strftime('%Y%m%dT%H%M%S.%f')
88
+ fname0=".\\files4\\"+"image0_" + strdate0 + ".png"
89
+ cv2.imwrite(fname0, frame)
90
+
91
+ elif camera_number==1:
92
+ strdate1=datetime.datetime.now().strftime('%Y%m%dT%H%M%S.%f')
93
+ fname1=".\\files4\\"+"image1_" + strdate1 + ".png"
94
+ cv2.imwrite(fname1, frame)
95
+
96
+ elif camera_number==2:
97
+ strdate2=datetime.datetime.now().strftime('%Y%m%dT%H%M%S.%f')
98
+ fname2=".\\files4\\"+"image2_" + strdate2 + ".png"
99
+ cv2.imwrite(fname2, frame)
100
+ ```