
OpenCVで画像一致検出のプログラムを組んでいます。
Cvmatchtemplateは動作していますが、そのパラメーター、
CV_TM_SQDIFFはSquared difference 輝度差の二乗和
CV_TM_CCORRはCross correlation 相互相関
CV_TM_CCOEFFはCorrelation coefficient 相関係数
でNORMEDはそれらの正規化したもの
と言う所までは判ったのですが、(分かったでは無い-笑-)それらの意味が良く分かりません、かろうじて理解出来るのは輝度差の二乗和のみです。
私としては各々の詳細を理解出来なくても、どの様な結果を導きたい時使うパラメーターかが判れば良いのですが、色々サイトを探しても、数式が書かれている所はありますが具体例が書かれている所が見つかりませんでした。
どなたか良いサイト、もしくは本をご存知無いでしょうか。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
具体例というのが、どこまで期待しているのか?わかりませんが、OpenCVの引数は画像処理用語的には以下のような表現をします。
CV_TM_SQDIFF→SSD(Sum of Squared Difference)
CV_TM_CCORR_NORMED→NCC(Normalized Cross-Correlation)
CV_TM_CCOEFF_NORMED→ZNCC(Zero-mean Normalized Cross-Correlation)
このNormalized Cross-Correlationは『正規化相互相関』なので詳しくはこれらのキーワードで検索してもらうと、詳細がわかると思います。
当然ですが、二乗和を用いた場合は結果が小さいほど似ている事となります。
逆に相関を用いた場合は結果が大きいほど似ている事になります。
また、『相関』というのは、ほぼベクトルの内積を計算している事と等しくなります。
CV_TM_CCORRの場合は内積そのものです。
CV_TM_CCORR_NORMEDの場合は内積の公式をcosθ=a・b/(|a||b|)とした場合と同じです。
cosθを計算しているので、最も似ている場合、θが0°(ズレが無い)となり最大相関の1となり、θが180°(真逆にズレている)の場合、相関値は-1となります。
一般的にCV_TM_CCOEFF_NORMED(正規化相互相関)が輝度値の変化に影響を受けずらく比較的、安定してパターンを検出しますが、逆に、全く関係なさそうな部分を誤検出する場合もあります。
本はディジタル画像処理(CGーARTS協会)という本がオススメです。
ご回答ありがとうございました。
丁度私も下記のサイトを見つけ、今まで分からなかった式がやっと理解出来る様になり、各々どんな事をやっているのか考えて見ようと思った所です。
http://dixq.net/board/log/bbslog_76.html
実際の問題としてはマスターとターゲットの輝度差の問題がありますので、CV_TM_CCORR_NORMEDが良さそうですので、これから色々試験して処理時間も考慮してどのパラメーターを採用するか検討して見たいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c++の勉強方法を教えてくださ...
-
c言語
-
C言語について。
-
visual studio 2022でのC#プロ...
-
C言語の関数のextern宣言
-
大量のデータを読み込んで表示...
-
C言語 配列と関数の練習問題
-
VisualStudio2022でC言語プログ...
-
c言語の問題です
-
C言語 関数、変数の宣言について
-
プログラミングc++を全く分か...
-
10進数からN進数に変換するプロ...
-
C++でデスクトップGUIアプリ開...
-
c#のTLS1.2での通信について
-
ストリームについて。
-
プログラマー達は何故、プログ...
-
C言語について(初心者)
-
あってる
-
DNCL(共テ用プログラミング言語...
-
DNCL(共テ用プログラミング言語...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
COBOLのIFの入れ子について
-
VBとフィボナッチに明るい方、...
-
COBOL計算
-
二つの図形を画面上で同時に動...
-
javascript初心者です
-
GoTo文について
-
式?文?節?
-
プログラミング言語ベーシック
-
アルゴリズム、C言語に関する...
-
Ruby / passenger のインストー...
-
小文字wと大文字Wの区別
-
プログラミング講師はまだ需要...
-
プログラミング言語で大文字と...
-
ruby.exeとrubyw.exeに違いがあ..
-
RubyでNo such file or directo...
-
サロゲートペアの文字コード→文...
-
Passengerがインストールできな...
-
秀丸エディタで、同じ記号で囲...
-
Ruby interpreter (CUI) 2.2.3 ...
-
2の補数計算でのsprintf関数の...
おすすめ情報