ARToolKitのtwoView その② 特徴色の認識

|
twoViewを使ったプログラム、2回目は特徴色の認識ですが、
正直これだけならtwoViewは関係ありません。

ですがこれができれば、次に面白いことができます。


ということで、軽く説明いたします。
基本は、解析のところでやったことに似ています。


--- < 処理の概要 > ---

recogFeatureColor01.jpg   recogFeatureColor02.jpg   recogFeatureColor03.jpg


処理は以下のようなものになります。
1.認識したい特徴的な色を取得する。
2.カメラに映った画像を、特徴色で2値化する。
3.2値化画像に対して、各閉領域を区別する。
4.閉領域を絞り込んで、適切なものを選択する。



--- < 1.認識したい特徴的な色を取得する > ---

最初に認識したい物体の色を取得します。
この色は、周囲の色とは違う特徴的な色でなくてはいけません。

マウスで画面内の特徴色をクリックし、その色を取得します。



--- < 2.カメラに映った画像を、特徴色で2値化する > ---

次に、与えられた画像を特徴色で2値化します。
画像の全ての点の色を調べ、特徴色に近いものだけ白にして、その他は黒にします。



--- < 3.2値化画像に対して、各閉領域を区別する > ---

白い領域に対してのみラベリングを行い、各閉領域を区別します。
ここでは、異なる色で各閉領域を表しています。

またこのとき、閉領域の面積や外接矩形も計算しておきます。



--- < 4.閉領域を絞り込んで、適切なものを選択する > ---

最後に、特徴色だと判定する閾値を変えたり、
閉領域の面積が小さい・大きいものを除外したりして、目的の閉領域を求めます。

目的の閉領域が、影などにより分かれてしまっていた場合、
外接矩形を見てくっつける、なんてこともできそうです。





さて次はこれを使って、とても面白いプログラムができるはずなのですが、
勉強不足のため、なかなか上手くいきません。

ついつい、学生の頃愛用していた3Dグラフィックス数学の本を買ってしまいました。
もっと数学の勉強をしないとだめです。

このブログ記事について

このページは、PipeRが2008年5月19日 20:58に書いたブログ記事です。

ひとつ前のブログ記事は「ARToolKitのtwoView その① カメラ間の関係」です。

次のブログ記事は「ARToolKitのFlash版があるようです」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01a