お世話になります。
C++で、パターンマッチングを行っています。
その際、下記のサイトを参考にしたのですが、ZNCCの1パスでの方法ができずに困っています。
参考:
http://imagingsolution.blog107.fc2.com/blog-entry-186.html
この処理の外側には、参照画像を検索していくループがあります。
最適化する前の式はコードへ起こし、マッチングさせることが出来たのですが、
最適化の式をソースコードに変換してから、マッチングする値が、最適化する前の値と違うようになってしまいました。
変更したのは、下記のコード部分で、最適化の式をそのままソースコードにしたつもりです。値が違うのは、私のソースコードへの変換が間違っているのか、そもそも、私の認識違いで最適化した式だけでは、計算が出来ないのかだと考えているのですが、どちらか判断が出来ませんので、ご助言をお願い致します。
C++
1 2CENTER_X : テンプレートのX軸サイズ 3CENTER_Y : テンプレートのY軸サイズ 4Temp[][] : テンプレート画像 5Point[][]: 参照画像 6 7double zucc_1 = 0.0; 8double zucc_2 = 0.0; 9double zucc_3 = 0.0; 10double zucc_4 = 0.0; 11double zucc_5 = 0.0; 12double zucc_6 = 0.0; 13double zucc_7 = 0.0; 14 15for(j=0; j<CENTER_Y; j++) // パターンマッチ計算. 16{ 17 for(i=0; i<CENTER_X; i++) 18 { 19 zucc_1 += Temp[j][i] * Point[j][i]; 20 zucc_2 += Temp[j][i]; 21 zucc_3 += Point[j][i]; 22 zucc_4 += Temp[j][i] * Temp[j][i]; 23 zucc_5 += Temp[j][i] * Temp[j][i]; 24 zucc_6 += Point[j][i] * Point[j][i]; 25 zucc_7 += Point[j][i] * Point[j][i]; 26 } 27} 28 29// 計算 30match = ( (CENTER_Y * CENTER_X * zucc_1) - (zucc_2 * zucc_3) ) / 31 sqrt( ((CENTER_Y * CENTER_X * zucc_4) - (zucc_5)) * ((CENTER_Y * CENTER_X * zucc_6) - zucc_7) ); 32
よろしくお願いいたします。
大変失礼しました。質問の内容について、再度見直し、修正させていただきました。
回答1件
あなたの回答
tips
プレビュー