【Python/OpenCV】テンプレートマッチング(SAD)の実装例

PythonとOpenCVで画像のテンプレートマッチング(類似度尺度SAD)を行う方法をソースコード付きで解説します。

【はじめに】テンプレートマッチング(SAD)とは

テンプレートマッチング(Template matching)とは、入力画像中からテンプレート画像(部分画像)と最も類似する箇所を探索する処理です。
原理については下記事で解説しています。

テンプレートマッチングの原理・計算式・例題(SAD, SSD, NCC)
この記事では、テンプレートマッチングによる探索の原理や特徴、計算式・例題についてまとめました。

動画解説

■SAD
SAD(Sum of Absolute Difference)では、「画素値の差分の絶対値の和」で類似度を評価します。
この場合も値が最小になる場所が類似度が最も高いことになります。

今回は、SADを評価値としOpenCVとNumPyライブラリでテンプレートマッチングの処理を実装しました。

【サンプルコード】Python3 + OpenCV

サンプルプログラムのソースコードです。


サンプルプログラムの実行結果です。

■左から入力画像(input.jpg)、テンプレート画像(temp.jpg)、出力画像(result.jpg)

お借りした画像:プロ生ちゃん(暮井 慧)

関連記事
1 PythonでOpenCV入門 サンプル集
2 【Python】画像処理プログラミング入門
3 【画像処理入門】アルゴリズム&プログラミング

コメント