Feel Physics Backyard

HoloLensの出張授業をする会社で、教材を開発しています

120202-【動画】ProcessingとKinectで合成映像(クロマキー)

いやー、いい眺めだなあー

なんちゃって。ProcessingとKinectで合成映像(クロマキー)を作ってみました。

なぜこんな映像が作れるかというと、KinectRGBカメラ映像の中から人物を抽出する機能を持っているからです。

ちなみに背景を入れないとこのような感じになります。

◆背景

このときの背景のコードは次のような感じです。

そして自由の女神を背景にするのは次のような感じです。

◆setup()とdraw()

Processingのコードは、初期化「setup()」と継続的な描画「draw()」の2つに分かれています。初期化は1回だけ行われ、描画はずーっと終了させるまで繰り返されます。

次のコードは初期化「setup()」のコード。深度カメラを有効にし、人物検出を有効にし、RGBカメラを有効にしています。

続いて継続的な描画「draw()」の部分です。

まず、makeImgForMaskという関数でマスク用の画像を作っています。マスクとは、他の画像の隠したい部分と見せたい部分を分けるものです。ここでは人以外のもの(私の部屋の様子)をマスクしています。

次に、RGBカメラの映像をマスクして、人だけを繰り抜きます。最後に背景の上に人だけを描画しておしまいです。

◆マスク用画像の作成

最後に、makeImgForMaskという関数の中身ですが、次のようになっています。sceneImageは灰色の部分と色がついた部分に別れるので、色のついた部分を白、それ以外を黒にして、マスク用の画像を作っています。

なんだかアイデア次第でいろんな動画が作れそうな気がします。

みなさんもぜひ何か作ってみてください。