0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonのOpenCVでwebカメラが使えないときはプライバシー設定が問題かも

Posted at

はじめに

最近Windowsのデスクトップパソコンにusb接続したカメラを接続して、PythonのOpenCVで遊ぼうと思っていました。
しかしなぜかカメラを認識せず、動かないという問題がありました。
試行錯誤の結果、Windowsのプライバシーのカメラの設定がすべてオンにすることで解決しました。

プログラム

今回使用していたプログラムは、以下のサイトのプログラムです。

# OpenCV のインポート
import cv2

# VideoCaptureのインスタンスを作成する。
# 引数でカメラを選べれる。
cap = cv2.VideoCapture(0)

while True:
    # VideoCaptureから1フレーム読み込む
    ret, frame = cap.read()

    # スクリーンショットを撮りたい関係で1/4サイズに縮小
    frame = cv2.resize(frame, (int(frame.shape[1]/4), int(frame.shape[0]/4)))
    # 加工なし画像を表示する
    cv2.imshow('Raw Frame', frame)

    # 何か処理(ここでは文字列「hogehoge」を表示する)
    edframe = frame
    cv2.putText(edframe, 'hogehoge', (0,50), cv2.FONT_HERSHEY_PLAIN, 3, (0, 255,0), 3, cv2.LINE_AA)

    # 加工済の画像を表示する
    cv2.imshow('Edited Frame', edframe)

    # キー入力を1ms待って、k が27(ESC)だったらBreakする
    k = cv2.waitKey(1)
    if k == 27:
        break

# キャプチャをリリースして、ウィンドウをすべて閉じる
cap.release()
cv2.destroyAllWindows()

これを実行すると、AttributeError: 'NoneType' object has no attribute 'shape'というエラーが出るうえ、resという変数がFalseとなっていました。つまり画像を取得できていませんでした。

試したこと

1.PCがカメラを認識しているかの確認

winodwsの検索からデバイスマネージャーを開き、カメラの下にWebcameraがあるかを確認します。

image.png

2. カメラアプリでの確認

カメラアプリでちゃんと写っているか確認します。

image.png

3.プライバシー設定

設定からプライバシーの設定をします。

image.png

まず、このデバイスのカメラへのアクセスを許可するオンにします。
次に、アプリがカメラにアクセスすできるようにするオンにします。
この時、Microsoft Storeアプリは個別にオンにする必要はありません。

image.png
1.

最後に、まず、デスクトップアプリがカメラにアクセスできるようにするオンにします。
この状態でPythonでカメラを使用していると、画像のようにPythonが現れます。

image.png

まとめ

今回、カメラが使用できなかったのは、プライバシー設定でカメラのアクセスがオフになっていたからでした。
プライバシーに気を使っていると同じような問題が起きるかもしれません。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?