[scikit-image] 44. テンプレートマッチングによる画像識別(skimage.feature match_template)

python

はじめに

ここでは、skimage feature match_templateによりテンプレート画像と一致する部分を画像中から検出した例を示す。

コード

解説

モジュールのインポート

画像データの読み込み

昨年、種まきしたストロンギロゴナムの現在(2019年9月)の画像を使用する。グレースケールとし、所定の位置で苗を切り取る。

テンプレートマッチング

imageの中のsabo(template)に該当する部分を求める。結果は相関係数の画像として得られる。相関係数が最も高いものが一致が良いことになる。

unravel_indexによって、np.argmax(result)のresult.shapeにおけるインデックスを求める。

画像の表示

plt.Rectangle((x, y), wsabo, hsabo, edgecolor=’green’, facecolor=’none’)によって、テンプレートと一致する座標を中心として、テンプレートと同じ縦横サイズの四角を描写する。

ax3.plot(x, y, ‘o’, markeredgecolor=’green’, markerfacecolor=’none’, markersize=10)により、相関係数像の最も高い部分に丸を表示している。
他の苗も似ているため、相関係数の値は高くなっている。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

Template Matching — skimage 0.25.0 documentation
skimage.feature — skimage 0.24.0 documentation
numpy.unravel_index — NumPy v1.10 Manual

コメント