2010年07月03日

Webカメラ

Silverlight4の新機能を色々試そうという事で、Webカメラを使ったアプリを
作ってみました。
Webカメラを使えば拡張現実、OCR、QRコード、顔認識、ボディジェスチャとか
の画像認識系やセキュリティカメラ、ビデオチャットなど夢が広がりまくりなんですが、
今回は単純にWriteableBitmapを使って色を変化させるアプリです。
Microsoft Silverlight を入手

        Rectangle video_source;

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            CaptureSource captureSource = new CaptureSource();
            captureSource.VideoCaptureDevice = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();
            VideoBrush webcamBrush = new VideoBrush();
            webcamBrush.SetSource(captureSource);
            video_source.Fill = webcamBrush;

            if (CaptureDeviceConfiguration.RequestDeviceAccess() && captureSource.VideoCaptureDevice != null)
            {
                try
                {
                    captureSource.Start();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "error", MessageBoxButton.OK);
                }
            }
        }
        }

これがWebカメラを起動させるコードなんですが、一つ注意する事があって
カメラを起動させるのにCaptureDeviceConfiguration.RequestDeviceAccess()
を呼ぶ必要があるのですけど、上のコードみたいにボタンのクリックイベントとか
を使ってユーザーが呼び出す必要があるという事です。

今回はWriteableBitmapを使って処理したのですけど、特に色の調整の部分が重く
なってしまいました。
こういう処理はピクセルシェーダーを使った方がいいのかもしれないですね。
posted by Rael at 19:52| Comment(0) | TrackBack(0) | Silverlight | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。