OpenCvSharp3 + Kinect v2

Windows フォームアプリ で OpenCvSharp 3 + Kinect v2 を使ってみる簡単な例です。たぶんこれが早いと思います。
Microsoft のサンプルはWPFのものが多いので、Windowsフォームを使う例としても残しておきます。

ソリューション一式はGitHubにも置いてあります。

環境

ここでは下記の環境での解説となっています。
それぞれ事前にインストールしておく必要があります。

1. 準備

1.1. プロジェクトの作成

Visual Studio を起動して 「ファイル」→「新規作成」→「プロジェクト」 を選びます。

出てきたウィンドウでは下記のように選び、適当な場所に適当な名前で作成します。

  • 上部で「.NET Framework 4.5」
  • 左のテンプレートは「Visual C#」
  • 中央は「Windows フォームアプリケーション」

OpenCvKinect_001

 

1.2. Microsoft.Kinect への参照の追加

新規プロジェクト作成できたら、ソリューションエクスプローラーでプロジェクトの下の「参照」(下図で青くなっている行)を右クリックして、「参照の追加」を選びます。

OpenCvKinect_005

出てきたウィンドウで左は「アセンブリ」が選ばれた状態とし、右上の検索欄に「Kinect」と入れて「Microsoft.Kinect」を探します。

OpenCvKinect_006

見つかった「Microsoft.Kinect」にマウスカーソルを持っていき、チェックを付けてOKを押します。

Microsoft.Kinect.Face など他のものもありますが、それは必要に応じてチェックします。(普通にカラー画像、深度画像、骨格を扱う範囲ではMicrosft.KinectだけでOKです。)

参照に追加できたら次へ進みます。

1.3. OpenCvSharp3 の追加

またソリューションエクスプローラーで、今度はプロジェクト(下図の青くなっている行)を右クリックし、「NuGet パッケージの管理」を選びます。

OpenCvKinect_003

出てきたウィンドウの上部では「参照」を選んだ状態とし、検索欄に「OpenCvSharp3」と入れて探します。

OpenCvKinect_004

「OpenCvSharp3-AnyCPU」を選んで「インストール」をします。
(マンドリルのアイコンです。)

インストールできれば、準備完了です。

2. フォームの編集

2.1. デザイン

Form1.cs を開いて、メインになるフォームに PictureBox を一つ追加しておきます。
その PictureBox を選択すると右上に小さい三角が出ますが、そこからサイズモードを Zoom にして、親コンテナーにドッキングしておくと良いでしょう。

OpenCvKinect_007

2.2. コード

ソリューションエクスプローラーの Form1.cs を右クリックして「コードの表示」を選ぶとコード編集ができます。

Form1.cs のコードはこんな感じになります。
(最初に決めたプロジェクト名が違う場合など、下のすべてをコピペしてもうまく動くとは限りません。念のため。)

3. 実行

以上で Form1.cs のデザインとコードの編集ができたら、Kinect v2 をつないでデバッグの開始をしてみます。
上手く動けばこんな感じになります。

OpenCvKinect_008

なお今回のサンプルでは上のコードでは、カラー画像そのままではなく R,G,B それぞれについて2値化する処理を入れてあります。

UpdatePictureBox(this.colorOutputImage);
の行を
UpdatePictureBox(this.colorImage);
と書き換えると、処理していない画像を表示できます。