[BlueLeaf1336]> PROBLEMS> パターン認識への長い道のり>

パターン認識への長い道のり > 画像の回転・平行移動・拡大縮小

historyTOP

2006/04/23:作成

2006/04/23TOP

タイトルのとおりです。これまで、かなりくだらないコードもHTML化してきたくせに、ここからは実行結果だけにします。

実行結果TOP

TestAffine2.zip(456,608Bytes) ソースコードと実行ファイルです。画像ファイルをフォームに抱え込んでいるので、えらくサイズがでかくなってますが、中身のほうはサイズに比例してません。

このテストの意図は、あれです。左側の大きな画像がパターン認識をしたい画像のつもりで、右下の画像が左の画像から赤枠で切り取った箇所をまっすぐ立てた(?)ものです。で、このまっすぐ立てたものを、別に用意したテンプレート画像と比較して、一致しているかどうかを評価できればよいんじゃないかと考えています。

また、この赤枠は、画面右上の4つのパラメータで移動したり回転したり拡大したり縮小したりできるようになっています。テンプレート画像をイヤになるほど用意することは邪魔くさくてできないし、用意できたとしても評価時間が長くなってしまって、パターン認識としては役立たずになるだろうと。それよりも大雑把にテンプレート画像にあわせるように切り取ってこようじゃないかと。多分、テキスト(C言語による画像処理入門 昭晃堂)でもそういうつもりだと思います。

このトーマス写真では拡大率を10倍にしてもそれなりに元の画像の面影は残るんですが、拡大率を上げていくと、すごい量の間引きを行っています。つまり切り取った画像にまったく影響を与えない部分が大量になるので、普通はどうするんだろうかというのが気になります。単純に考えて、縮小前(用語が入り乱れてますが、拡大率が1よりも大きい場合、切り取った画像から見ると元の画像は縮小前とみなせます/みなします)の画像のすべての点を縮小後の画像に反映させようとすれば、画像の縮小率が2未満になるまで、50%ずつ縮小していって最終的に(よくわからなくなってきたので、中断)。

次は、ふたつの画像を比較して似ているかどうかを評価するテストをやります。実際には異常に困難なものになりそうですが、嘘っぱちでもかまわない勢いで押し切る予定です。パターン認識をやる前に全体のイメージの「似ている判定」なんてできるわけがありません。テキストでもそうしていたように、単純に同じ位置にある点の色(256色グレースケールなので階調値)を順番に比較していって(比較の時に隣の点がどう、なんてのは考慮の外です)、すべての点について比較した結果を合計して、点数が高いものを「似ている」と判定するようにします。

EOFTOP