
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で質問しましょう!
似たような質問が見つかりました
- 物理学 時間を語るなら、(複数の時間の正体)を知る必要が有る。 1 2023/02/16 22:14
- 物理学 英語表現についてどうもわからないので教えて貰えないでしょうか? 具体的には以下の文の中でreflec 1 2023/04/29 20:59
- 物理学 量子力学や相対性理論での1からの独学方法について 詳しい方回答をお願いします 現在、量子力学や相対性 6 2023/03/22 12:07
- 法学 労働紛争の口外禁止条項とはどこまでの制限がありますか? 2 2022/10/15 22:48
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- ヘアケア・ヘアアレンジ・ヘアスタイル 自分に合った上手な美容師さんが見付けられません 3 2022/09/08 23:31
- 哲学 神の《二性性相》とは いったい何のことか? (つづき) 1 2022/07/17 06:02
- 物理学 特殊相対性理論を、完全否定に成功~ガンマの数式は、成立しない。 2 2023/03/08 19:30
- 英語 英語に詳しい方に質問です。 2 2022/06/21 15:33
- ハッキング・フィッシング詐欺 インターネットの怖さについて 8 2022/05/27 01:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DLLファイルの逆コンパイラにつ...
-
プログラマー達は何故、プログ...
-
最初に聞かれたこと
-
あってる
-
大量のデータを読み込んで表示...
-
c言語の問題の説明、各所ごとに
-
【C言語】全角文字の配列を、全...
-
visual studio 2022でのC#プロ...
-
gccを行ってもexeファイルが生...
-
C++でデスクトップGUIアプリ開...
-
プログラミング言語についてc++...
-
プログラム言語について c言語...
-
C#でログファイルにファイルパ...
-
c#のTLS1.2での通信について
-
int16_t の _t は何?
-
C言語 1から20までの逆数の和を...
-
C言語の関数のextern宣言
-
UART通信の取説で,left floati...
-
逆コンパイルと逆アセンブルの...
-
右ビットシフト
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
COBOLのIFの入れ子について
-
VB.NETで階乗を求めるプログラ...
-
二つの図形を画面上で同時に動...
-
COBOL計算
-
GoTo文について
-
fortranのif文で・・・
-
式?文?節?
-
VBとフィボナッチに明るい方、...
-
プログラミング言語ベーシック
-
反省文
-
アルゴリズム、C言語に関する...
-
javascript初心者です
-
プログラミングの問題です。
-
perlで確率計算
-
小文字wと大文字Wの区別
-
Ruby interpreter (CUI) 2.2.3 ...
-
web上のhtmlファイルから文字デ...
-
RubyでNo such file or directo...
-
バーコードのチェックデジット...
-
VB.NETの入門書、どれをお使い...
おすすめ情報