2020.02.21目次はじめにコード解説モジュールのインポートなど画像の読み込みテンプレートマッチング全画像のサボテンの位置を求めるテンプレートマッチングで検出した画像の位置合わせ参考はじめにskimage.featureのmatch_templateにより、複数の画像に対してテンプレートマッチングを行うことで動く物体を追跡した例について説明する。コードコードをダウンロード(.pyファイル)コードをダウンロード(.ipynbファイル)解説モジュールのインポートなど画像の読み込みwebブラウザChromeのchrome://dino/で遊べるゲームの画像を用いる。スクリーンショットを切り取ったものを使う。切り取りは下記記事を基にして行った。crop)skimage.utilのcropを用いて、画像を切り取る(トリミングする)方法について説明する。ImageGridを用いて画像を表示すると下記のようになる。今回はこの画像のサボテンの位置の変化を追跡する。テンプレートマッチングテンプレートマッチングについては下記記事で解説した。match_templateによりテンプレート画像と一致する部分を画像中から検出した例を示す。sabopy.com2019.09.11imageのなかのsaboに該当する部分をテンプレートマッチングで検出する。match_templateでpad_input=Trueとすることで適当な補間を用いてテンプレートマッチングすることになるので、出力画像のサイズが入力画像と等しくなる。result.shape)により、最大値のインデックス=最も適合する部分のインデックスを得ることができる。ij[::-1]として正しいx,yの値を得る。結果はGridSpecを用いて示した。左の画像がテンプレート画像で、右上の画像が元画像で最も適合する部分にテンプレートのサイズを使って四角を描写している。右下がmatch_templateの出力画像であり、サボテンの部分のみ赤くなっていることがわかる。全画像のサボテンの位置を求める複数画像に対してテンプレートマッチングを行い、得られた座標に緑丸線をプロットした。画像は透明度を0.1として複数表示した。テンプレートマッチングで検出した画像の位置合わせ最初の画像を基準にして、各画像でサボテンの位置の差を求めた。その差の分だけ、AffineTransformとwarpを用いて、画像をシフトした。全画像の透明度を0.2として複数表示すると上記のようになる。サボテンの位置にブレがなく、完全一致していることがわかる。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。defined.")}))})();。