前回は、縦横が固定できる場合の画像マッチングを行なったが、今回は、回転がかかった画像のマッチングを試みる。前回と異なり今回は、同一画像で、違いは回転である。
回転画像のマッチングというのはたぶん、回転させながらマッチングさせていけばよいのだろうが、360度それをやっていくとなるとキリがない。
ということで、別のアルゴリズムを考えてみる。
中央の1pxから同心円状に徐々に取り出し、それのmeanを得る。
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
これでいうと、12番から徐々に周りをとれば良い事になる。
しかし厄介なのが、ピクセルは四角なので、円状に取り出すには、
どうしたら良いかという問題が生じる。
真面目に探せば、それようの計算法があるのかもれいないが、なんとなく円状に4段階でピクセルを取り出し、それぞれmeanを算出した。
あとは、前回とほぼ一緒で、1pxずつずらしながら、その4段階の数字を比較。
というのが今回試したアルゴリズム。
まずはこれが検索範囲の画像。
続いて検索対象。
画像編集ソフトで45度回転させた画像より、波線の部分、モロコシの先っちょ(5px × 5px)を選択。(検索用にその部分だけ別名保存)
検索結果はこちら
白で塗りつぶした部分が今回のアルゴリズムで特定した部分である。
場所はこの範囲であってそうだが、許容する誤差を大きくした関係で、別の部分も多くマッチしてしまっった。もう少しピンポイントで、範囲を絞りたかった。
このぐらいだと、1か所(4px × 4px)のmean で捜索してもほとんど変わらないんじゃないかと思ったりするので、微妙だなというのが感想。