いやー、いい眺めだなあー
なんちゃって。ProcessingとKinectで合成映像(クロマキー)を作ってみました。
なぜこんな映像が作れるかというと、KinectはRGBカメラ映像の中から人物を抽出する機能を持っているからです。
ちなみに背景を入れないとこのような感じになります。
◆背景
このときの背景のコードは次のような感じです。
そして自由の女神を背景にするのは次のような感じです。
◆setup()とdraw()
Processingのコードは、初期化「setup()」と継続的な描画「draw()」の2つに分かれています。初期化は1回だけ行われ、描画はずーっと終了させるまで繰り返されます。
次のコードは初期化「setup()」のコード。深度カメラを有効にし、人物検出を有効にし、RGBカメラを有効にしています。
続いて継続的な描画「draw()」の部分です。
まず、makeImgForMaskという関数でマスク用の画像を作っています。マスクとは、他の画像の隠したい部分と見せたい部分を分けるものです。ここでは人以外のもの(私の部屋の様子)をマスクしています。
次に、RGBカメラの映像をマスクして、人だけを繰り抜きます。最後に背景の上に人だけを描画しておしまいです。
◆マスク用画像の作成
最後に、makeImgForMaskという関数の中身ですが、次のようになっています。sceneImageは灰色の部分と色がついた部分に別れるので、色のついた部分を白、それ以外を黒にして、マスク用の画像を作っています。
なんだかアイデア次第でいろんな動画が作れそうな気がします。
みなさんもぜひ何か作ってみてください。