前提・実現したいこと
学生です。現在MATLABを用いて、テンプレートマッチングの勉強をしています。
自分なりに計算方法SSDをコードで書いてみたのですが
いざ画像でやろうとすると、重くてコンパイルが終わりません。
発生している問題・エラーメッセージ
エラーなし
該当のソースコード
function [min,zahyou] = patamati(a,b) sizeA = size(a); sizeB = size(b); if(sizeB(1,1)*sizeB(1,2) > sizeA(1,1)*sizeA(1,2)) nige = a; a = b; b = nige; end %入力の順番自由 sizeA = size(a); sizeB = size(b); x = 0; wa = zeros; min = 256^2 * sizeB(1,1) * sizeB(1,2); %minの初期値は8bit最大 for k = 0:(sizeA(1,1)-sizeB(1,1)) for l = 0:(sizeA(1,2)-sizeB(1,2)) x = x + 1; wa(x) = 0; for i = 1:sizeB(1,1) for j = 1:sizeB(1,2) wa(x) = wa(x) + (a(i+k,j+l) - b(i,j))^2; %差の二乗を加算 end end if(wa(x) < min) min = wa(x); zahyou = [k+1,l+1]; %zahyouはマッチしたときの左上の座標 end end end min = min / (sizeB(1,1)*sizeB(1,2)); %1ピクセル当たりの差 end
試したこと
①グレスケ画像(画像は4032×3024、テンプレートは904×383)
②バイナリ画像(サイズは同上)
③4×6のランダムな数値の行列と3×3のテンプレート
結果は③のみ出来ました。バイナリ画像でもできないのはおかしいと思い
質問させていただきました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/12 01:27
2020/07/12 09:38