2014年5月14日水曜日

Kinectプログラミングをする時は、WPFプロジェクト がお勧めです

Windowsプログラミング(.NETフレームワーク)において、GUIアプリの開発アプローチとしては、歴史的に
  • Formアプリケーション
  • WPFアプリケーション
の2つに分けられます。前者は従来のWindowsGUIプログラムの流れです。後者はVista以降に標準搭載された.NETフレームワーク3.0に最適化されたもので、GUI定義がXAMLと呼ばれるXMLで書かれたファイルで表現されるだけでなく、2Dや3Dを含めた各種GUI処理を統一的に扱えるフレームワークを持つという特徴があります。

ラボでは過去の実装ノウハウを活かすこととWPFに関する資料が少なかったことから、現在まで原則前者を使ってきており、Kinect のプログラミングでもそうしてました。しかし、画面描画処理のパフォーマンスをあげるなら、WPFの方が良いということに今更気づいたのと、さすがにWPFを無視することができなくなりましたので、以後、KinectプログラミングについてはWPFに乗り換えることにします。

WritableBitmapを利用するのがポイント
KinectのColorFrameをWPFで表示する際は、
  • PictureBoxクラスではなくImageクラスに表示
  • BitmapではなくBitmapSourceを割り当てるのが基本
  • WritableBitmapを割り当てると表示処理が高速化
という点が変わります。ポイントは3つめです。下記のサンプルを見てもらえばわかりますが、WritableBitmapを作成しImageクラスのSourceに1度だけ割り当てるだけで、あとはWritableBitmapの内容を更新するだけで更新されます。Formでは各フレーム画像ごとに毎回Bitmap変換して貼り付けていましたから、プログラムのスッキリしますし速度の向上も期待できます。



0 件のコメント:

コメントを投稿