

### やりたいこと

PCに接続したUSBカメラをopencv-pythonで動作させ、リアルタイムで動画を撮影、画面に表示させたい。

### 困っていること

Logicool製のusbカメラで動作テストを行い動画撮影と画面表示が可能なことを確認後、同じ条件下でELP製カメラでプログラムを実行したところエラーが発生した。

プログラム初心者なため基本的な部分も理解しきれていませんが、ご教授のほど何卒よろしくお願い申し上げます。

**動作環境**  
・visual studio 2019  
・Python 3.9  
・opencv-python 4.5.3.56  
・numpy 1.12.2

**使用デバイス**  
・Logicool C720n  
・‎ELP-USBFHD08S-L36-J

**エラー内容**

[code]

    error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
    
[/code]

**全体コード**

[code]

    import cv2
    import numpy as np
    cap = cv2.VideoCapture(1)
    while(cap.isOpened()):
    
        ret, frame = cap.read()
    
        cv2.imshow("Flame", frame)
    
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    cap.release()
    cv2.destroyAllWindows()
    
[/code]


CC BY-SA 4.0
2021-12-07T10:04:29.657
84006
2022-08-01T01:06:05.577
2021-12-07T11:13:06.253
3060
49388
question
python opencv camera
OpenCV-Python環境でusbカメラの種類によって動作が不安定になることを防ぐにはどうすればいいでしょうか？


> error: (-215:Assertion failed) !_src.empty()

表示するフレームが空っぽ、みたいなエラーの可能性があります。  
1フレーム目から表示するのではなく、例えば最初から1秒程度フレームを捨ててみてください。

[code]

    cap = cv2.VideoCapture(1)
    
    for i in range(30):
        ret, back = cap.read() # 最初の1秒ほどフレームを捨てる (30fps) 
    
    while(cap.isOpened()):
    
[/code]


CC BY-SA 4.0
2021-12-07T13:37:04.667
84010
2021-12-07T13:37:04.667
43005
84006
answer