はじめに
ここでは、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)により、相関係数像の最も高い部分に丸を表示している。
他の苗も似ているため、相関係数の値は高くなっている。
参考
Template Matching — skimage 0.25.0 documentation
skimage.feature — skimage 0.24.0 documentation
numpy.unravel_index — NumPy v1.10 Manual
コメント