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

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

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

COM(Component Object Model)はMicrosoftによるコンポーネントテクノロジーであり、 ソフトウェアの再利用を目的とした技術を指します。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Python

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

Q&A

解決済

仮想Webカメラを自作したいのですが、やり方がわかりません。

watarusugimoto
watarusugimoto

総合スコア47

COM

COM(Component Object Model)はMicrosoftによるコンポーネントテクノロジーであり、 ソフトウェアの再利用を目的とした技術を指します。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Python

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

1回答

0グッド

0クリップ

9728閲覧

投稿2016/08/18 15:47

###PythonかOpenCVを用いて仮想Webカメラを自作したいです。

OpenCVのVideoCaptureという関数を使って仮想Webカメラをプログラミングできないか調べていますが、

できなさそうで、他に方法はないか考えてます。

directshowフィルターというもので作ればできるようなのですが、色々と調べてもちんぷんかんぷんで、

私には難しすぎる内容でした。

仮想Webカメラというのは、自分のデスクトップに映し出された動画を、自作したウィンドウへキャプチャする

アプリケーションです。

できれば、Pythonで仮想Webカメラを自作したいのですが、難しいでしょうか?

OpenCVの関数であるVideoCaptureはビデオカメラからの入力をデスクトップ上のウィンドウへ

映しているので、この入力をデスクトップの映像に変更できれば可能かなと考えていますが、

そのような動作はしなさそうです。

どなたか、詳しい方いましたらヒントを下さい。

よろしくお願いします。

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

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

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

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

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

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

yohhoy

2016/08/19 01:44

任意のアプリケーションで仮想Webカメラとして認識されるようにしたいならDirectShowフィルタの作成が必要です。単に自作アプリケーションで仮想的なWebカメラ(というより自前で用意した映像入力を処理したい)だけなら、ほかの解決策もあるでしょう。
watarusugimoto

2016/08/19 10:08

映像入力を処理したいだけなんですが、どのようにしたら良いですか? ヒントがあったら教えてください。 よろしくお願いします。
yohhoy

2016/08/19 12:26

あなたが本当にやりたいことを整理された方がよいです。「Pythonでデスクトップ画面キャプチャをし、その映像をOpenCVで加工したい」のでしょうか?
watarusugimoto

2016/08/20 07:01

とあるゲームを自動化するというのが目的なのですが、デスクトップキャプチャをして、OpenCVで画像判定しようと考えています。 ただ、デスクトップキャプチャを連続ですると画像の取得が遅いので、カメラの映像のように非常に速いコマ割りで映像を取得できると良いなと考えていて、 それでDirectShowフィルター等でデスクトップに映る映像をOpenCVへ取り込めないかなと考えていました。

回答1

1

ベストアンサー

デスクトップキャプチャをして、OpenCVで画像判定しようと考えています。

OpenCV にはデスクトップキャプチャ機能は存在しませんが、同機能を有する別ライブラリ Pillow(PIL) と組み合わせることはできます。Python/OpenCVでデスクトップキャプチャ などを参考にしてください。

ただ、デスクトップキャプチャを連続ですると画像の取得が遅いので、カメラの映像のように非常に速いコマ割りで映像を取得できると良いなと考えていて、 それでDirectShowフィルター等でデスクトップに映る映像をOpenCVへ取り込めないかなと考えていました。

これは単なる想像に過ぎませんが、仮にDirectShowフィルタで仮想カメラを作成しOpenCVに取り込んだとしても、Python+OpenCVによる画像処理では十分な処理速度が出ない気がします(=仮想カメラを作成する労力に見合わないと予想)。

処理速度を求めるなら、アルゴリズム検討自体はPython+OpenCVで行い、仕様がある程度固まったらC/C++等のネイティブコードで記述するのが王道でしょうか。

投稿2016/08/22 00:17

yohhoy

総合スコア6181

watarusugimoto👍を押しています

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

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

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

回答へのコメント

watarusugimoto

2016/08/22 04:29

有り難うございます。 今のところDirectShowフィルタを使うために、C++で、GraghEditというツールと、PushSourceフィルタとライブラリを使えば、デスクトップキャプチャを作ることが可能なのではないかと考えています。 それができたら、PythonでOpenCVのVideoCaptureで読み込めればいいなと考えています。 また質問すると思いますが宜しくお願いします。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

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

COM

COM(Component Object Model)はMicrosoftによるコンポーネントテクノロジーであり、 ソフトウェアの再利用を目的とした技術を指します。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Python

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