...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

身体動作を入力とするお絵かきソフトを作れ

新4回生は毎年プログラミングの課題を研究室で出されるのですが,今年も内容が発表される時期がやってきました.
ちなみに最近の課題は,3次元四目並べ,クァッドミスト,ブロックスなどでした.


例年,ネットワーク通信を行うプログラムを作成することになっていて,ブロックスとクァッドミストがネットワーク対戦機能付きになっていました.
そこへ,初めて3Dを扱う3次元四目並べが入りました.
C#.NET Frameworkのパワーなのか,割とみんなサクサク作ってましたけども.


今回は,ネットワークの代わりに,画像処理が入ったようです.
その課題はというと・・・.
「身体動作を入力とするお絵かきソフト」
おー,これが来ましたかー.


入力デバイスとして何を使うのかまだ知らないんですが,事前に相談していたときの話からするとカメラで動画を撮影して画像認識するんだと思います.
研究室にある画像処理関係の遺産はすべてC++で組まれているはずなので,去年に続いて今年もC#を使おうと思ったらマーシャリングとか考えないといけないわけですな.
しかも遺産はライブラリ化とか全然考えられていなくて,スパゲッティ状態になっていると思われます.


カメラの画像を取得して画面に表示するだけでもC++では案外苦戦させられた経験があります.
ビットマップのフォーマットが数種類あったり,デバイスコンテキストとビットマップの形式があってなくて画像を表示すると化けたり,色々とはまりどころ満載のプログラミングです.
画像表示はC#のImageクラスとかBitmapクラスとか使えばそんなに苦労しないんじゃないかとは思いますけども.


後,最大の難関はDirectShowでしょうね.
これを理解するのは本当に骨が折れましたから・・・.
ピンとか,フィルタとか,そういう独特な概念を理解するのが早いか遅いかで大きく作業時間は変わってくるでしょう.
まずはそれを理解して,C#で書かれているサンプルを載せてくれているどこかの大学のページがあるので,そのサンプルを解析してみるのが近道かなあ.


それから,画像認識の処理ですか.
これはほとんどやったことないんですけど,難しいことはやらなくても,お決まりのパターンでいいでしょう.
画像から特定の色要素を抜き出して,その中心(重心?)座標を求めて,ペンをその位置に移動して描く・・・それだけ.
後はどの程度の認識率を出せるか,ノイズ除去をうまくできるかどうか.
そんなところでしょうかね.


***


まあ,時間があったら相談くらいは乗ります.
基本はスーパースーパーバイザーとして!
なんかわからんがインパクトはすごい.


ただまあ,一応,質問できるくらいには勉強しましょう.


捨て猫を拾うことはできません.
餌をあげることしかできないのです.