📸

OpenCVがWebカメラであなたの顔を画像として取得するまでの仕組み

に公開
4

Discussion

mugiflymugifly

⇒ちなみにXSplit VCam使うと簡単に設定できます。OSの設定画面っぽいのですが、ここにたどり着く方法をVCam経由にする以外に知りません。

DirectShow が用意しているダイアログかと思います。
https://superuser.com/questions/1287366/open-webcam-settings-dialog-in-windows

このダイアログを表示するためだけのフリーウェアもありました。
https://tksoft.work/archives/3861

こーのいけこーのいけ

あー、なるほど。XSplit VCamは自分で(多分DirectShowなりを使って)カメラ開いてるから、そのダイアログが出せるんですね。Chromeもその気になれば出せるんでしょうけど、実装されていない、と。

別アプリになってても排他ロックされてるから開けないんじゃ・・・と思ったけど、Chromeとかは設定初期化したりしないから大丈夫なのかも。USBパケットキャプチャと合わせて深堀りすれば色々分かりそうです。

情報ありがとうございました!

こーのいけこーのいけ

今確認したところ、Chromeのカメラ選択デフォルトは「設定」で「カメラ」で検索して出てくるところでカメラデバイスを選択すればデフォルトになりますね。
前はちゃんと動いてなかったような覚えがあったので書かなかったのですが、これでカメラ選択機能作らなくても何とかなる(公開サービスでは作った方がいいです)。

こーのいけこーのいけ
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
cap.set(cv2.CAP_PROP_SETTINGS, 1)

別のことで CAP_PROP_* のこと調べてたのですが、これでダイアログ開きつつ画像処理させることが出来ますね。
キャプチャバックエンドが変わるのであれこれ細かなとこの挙動が変わりそうですが…