私の Windows 8 ストア アプリケーションでは、ライブ ビデオ ストリーム処理 (顔検出など) を実行する傾向があります。
テクニック 1
以前の Windows 7 アプリケーションでは、次の手法 ( Emgu CV (.NET の OpenCV) と WPF を使用した C# での Camera Face Detection ) を使用して、ライブ ビデオ処理を実行できました。この手法は、一定期間のタイマー コールバックを使用して、カメラ オブジェクトから画像バッファを積極的にクエリすることでした。
void timer_Tick(object sender, EventArgs e)
{
Image<Bgr,Byte> currentFrame = capture.QueryFrame();
// Perform image processing based on currentFrame
テクニック 2
以前Androidで使用したもう 1 つの手法は、カメラ自体にカメラ バッファー プレビュー コールバックをインストールするというものです。カメラは、キャプチャしたカメラ バッファを渡すことによって、定期的にコールバックをトリガーします。そこから、画像処理を行うことができます。
public abstract void onPreviewFrame (byte[] data, Camera camera)
{
// Perform image processing based on data
ただし、 Windows 8 ストア アプリケーションのビデオ処理に関する記事では、ほとんどが組み込みの処理関数を使用しています。
- キャプチャしたビデオを回転する方法 (C#/VB/C++ および XAML を使用した Windows ストア アプリ)
- キャプチャしたビデオにビデオの手ぶれ補正効果を追加する方法 (C#/VB/C++ および XAML を使用した Windows ストア アプリ)
それらのどれも、生のカメラでキャプチャされたバッファにアクセスする方法、バッファをピクセルごとに反復する方法を示していません。
CaptureElement & MediaCapture
に従って利用する必要があると思います
http://blog.xyzzer.me/2012/01/22/displaying-webcam-preview-in-a-metro-app-using-winrt-and-xaml/
この方法は、手間をかけずに Web カメラの入力を確認したり、ファイルにキャプチャしたりしたい場合に最適です。動画をリアルタイムで処理したり、他の UI コンポーネントをオーバーレイしたりしたい場合は、次のように入力してください。</p>
CaptureElement と MediaCapture の方法
しかし、著者はその後について詳しく説明していません。(私は彼がそうすることを願っています:)
CaptureElement & MediaCapture からライブ ビデオ ストリーム処理を実行する方法のヒントはありますか?