ARToolKitのtwoView その② 特徴色の認識
twoViewを使ったプログラム、2回目は特徴色の認識ですが、
正直これだけならtwoViewは関係ありません。
ですがこれができれば、次に面白いことができます。
ということで、軽く説明いたします。
基本は、解析のところでやったことに似ています。
--- < 処理の概要 > ---

処理は以下のようなものになります。
1.認識したい特徴的な色を取得する。
2.カメラに映った画像を、特徴色で2値化する。
3.2値化画像に対して、各閉領域を区別する。
4.閉領域を絞り込んで、適切なものを選択する。
--- < 1.認識したい特徴的な色を取得する > ---
最初に認識したい物体の色を取得します。
この色は、周囲の色とは違う特徴的な色でなくてはいけません。
マウスで画面内の特徴色をクリックし、その色を取得します。
--- < 2.カメラに映った画像を、特徴色で2値化する > ---
次に、与えられた画像を特徴色で2値化します。
画像の全ての点の色を調べ、特徴色に近いものだけ白にして、その他は黒にします。
--- < 3.2値化画像に対して、各閉領域を区別する > ---
白い領域に対してのみラベリングを行い、各閉領域を区別します。
ここでは、異なる色で各閉領域を表しています。
またこのとき、閉領域の面積や外接矩形も計算しておきます。
--- < 4.閉領域を絞り込んで、適切なものを選択する > ---
最後に、特徴色だと判定する閾値を変えたり、
閉領域の面積が小さい・大きいものを除外したりして、目的の閉領域を求めます。
目的の閉領域が、影などにより分かれてしまっていた場合、
外接矩形を見てくっつける、なんてこともできそうです。
さて次はこれを使って、とても面白いプログラムができるはずなのですが、
勉強不足のため、なかなか上手くいきません。
ついつい、学生の頃愛用していた3Dグラフィックス数学の本を買ってしまいました。
もっと数学の勉強をしないとだめです。
正直これだけならtwoViewは関係ありません。
ですがこれができれば、次に面白いことができます。
ということで、軽く説明いたします。
基本は、解析のところでやったことに似ています。
--- < 処理の概要 > ---

処理は以下のようなものになります。
1.認識したい特徴的な色を取得する。
2.カメラに映った画像を、特徴色で2値化する。
3.2値化画像に対して、各閉領域を区別する。
4.閉領域を絞り込んで、適切なものを選択する。
--- < 1.認識したい特徴的な色を取得する > ---
最初に認識したい物体の色を取得します。
この色は、周囲の色とは違う特徴的な色でなくてはいけません。
マウスで画面内の特徴色をクリックし、その色を取得します。
--- < 2.カメラに映った画像を、特徴色で2値化する > ---
次に、与えられた画像を特徴色で2値化します。
画像の全ての点の色を調べ、特徴色に近いものだけ白にして、その他は黒にします。
--- < 3.2値化画像に対して、各閉領域を区別する > ---
白い領域に対してのみラベリングを行い、各閉領域を区別します。
ここでは、異なる色で各閉領域を表しています。
またこのとき、閉領域の面積や外接矩形も計算しておきます。
--- < 4.閉領域を絞り込んで、適切なものを選択する > ---
最後に、特徴色だと判定する閾値を変えたり、
閉領域の面積が小さい・大きいものを除外したりして、目的の閉領域を求めます。
目的の閉領域が、影などにより分かれてしまっていた場合、
外接矩形を見てくっつける、なんてこともできそうです。
さて次はこれを使って、とても面白いプログラムができるはずなのですが、
勉強不足のため、なかなか上手くいきません。
ついつい、学生の頃愛用していた3Dグラフィックス数学の本を買ってしまいました。
もっと数学の勉強をしないとだめです。
