web-dev-qa-db-ja.com

.NETでUSB Webカメラに接続するにはどうすればよいですか?

特にC#を使用して、.NETのUSBウェブカメラに接続したい。 .NETが初めてなので、標準ライブラリでどのようなサポートが提供されているのかわかりません。クリップボードを介してビットマップをコピーする1つの例をWebで見つけましたが、非常にハックされているように見えます(おそらく遅い)。もっと良い方法はありますか?

25
Garth

Webカメラをアプリケーションに統合するには、 Windows Image Acquisition(WIA) を使用する必要があります。これにはすぐに利用できる例がたくさんあります。これがソース付きの C#Webcam User Control です。

あなたと同じ問題を解決しようとしている人々からのいくつかの記事とブログ投稿があります:

20
Eric Schoonover

興味深いことに、WIAはWebカメラからのキャプチャを実行するためのVistaではサポートされていません。彼らは主にスキャナーとカメラからスチールを引き出すことをターゲットにしました。

また、logitechのような大手メーカーはWIAを放棄し、DirectShowを支持しています。

9
JoelHess

これがこれを行う良い例です。これはDirectShow.Net( http://directshownet.sourceforge.net/ )を使用しており、 "clipboard":Dを使用するよりも適切です。

http://www.codeproject.com/KB/audio-video/WebcamUsingDirectShowNET.aspx

8
Crank

AForgeと呼ばれるコンピュータビジョンシステムで行うべき多くの機能を持つパッケージが存在します。また、USBカメラからWebカメラ画像を取得する簡単な方法があります。

コンピュータービジョンモーションセンサーのサンプルコードのサンプルコードを確認してください。私がしたように、あなたはあなたがそれから必要な関数呼び出しを引き出すことができると確信しています。

[ネクロに申し訳ありませんが、これは将来誰かに役立つかもしれません]

5
Kurru

私のコンピューターでは、WIAは非常に遅くなっていました...それで、私は Windows Multimedia Video Capture を試してみることにしました。

あなたはデモを見つけることができます ここ

3
timvw

それは本当にあなたが何をしたいかに依存します。 WIAは主にイメージングデバイスから静止画をキャプチャするためのものであり、DirectShow( directshow.net または管理されたDirectXのいずれかを介して使用される)はより充実したビデオ機能へのアクセスのためのものです。

もう1つのオプションは、WPFアプリケーションを作成することです。ビデオの組み込みサポートが大量にあり(ループするビデオクリップをボタンとして使用するのはかなり簡単です)、迅速かつ簡単に開発できます。

2
Sneaky