2008-11-03 (月)
*[画像処理] 四角形の認識
画像中の四角形を探すとき,どんなアルゴリズムを使うのが普通なのでしょうか.調べてもよさげな物が出てこないので,いくつか試してみた結果を.
他にも色々手法はあるでしょうが,簡単に試せそうなのはなかなか思いつきません.
ハフ変換して交点を…
リアルタイムで映像を処理するのでこれは重すぎた.かなり解像度を下げれば出来たけれど,実写だと余分な線分を除外しながら処理するのが面倒くさい.
対角線を何回か引いて
ある領域の端から端まで線分を引いて線分が長くなるように数回試行する.これは,それなりに正確でそれなりに速かったけれど,極端な台形になった四角形で失敗することが多い.
対角線を使うのはARToolKitのソースを読んで試してみた.ARToolKitでは,このあと色々処理するので問題ないっぽい?
ニコニコ動画にアップロードしたやつはこれ使ってた気がする.
重心からの距離を
輪郭上の点について,重心からの距離を計算して角を検出.ノイズが多い画像なので,色々工夫してみたけど,いまいちだった.まぁ,少し考えれば当たり前なのだけど,ひし形が細くなるとダメ.
輪郭を追跡しつつ角度の変移を
一番最初に試して,やっぱりこれに落ち着く.
もう,何も考えずに単純に,輪郭を追跡しつつ角度の変化から頂点を探すのが良いっぽい.
とりあえず,ノイズ対策のために,角度の計算に使う線分の長さを複数種類用意してやると,まぁそれなりに動く.