前提・実現したいこと
学生です。
急ぎで早めにアドバイスをいただけると幸いです。
MATLABで2枚の画像のテンプレートマッチング(SSD)を行いたいと思っています。
発生している問題・エラーメッセージ
行列の次元は一致しなければなりません
該当のソースコード
MATLAB
1%テンプレートマッチング(SSD) 2function [mini,mini1] = ssd(src,temp) 3%テンプレートの画像の高さ・幅 4[h,w]=size(src); 5[ht,wt]=size(temp); 6 7% スコア格納用の2次元配列 8score=[h-ht,w-wt]; 9 10% 走査 11for i=1:h-ht 12 for j=1:w-wt 13 14 % 二乗誤差の和を計算 15 diff=(src(i:i+ht,j:j+wt)-temp).^2; 16 score(i,j)=sum(diff); 17 18 end 19end 20 21% スコアが最小の走査位置を返す 22 23[C,I]=min(score(:)); 24 25[ii, jj] = ind2sub(size(score), I); 26 27pt=[ii,jj]; 28 29mini=pt(1,1); 30mini1=pt(1,2); 31 32///////////////////////////////////////////////////////////// 33 34 35% 模範解答 36a=imread('matanswer2.jpg'); 37a1=double(rgb2gray(a)); 38 39% 生徒解答 40s=imread('student.jpg'); 41s1=double(rgb2gray(s)); 42 43% テンプレート画像の高さ・幅 44[h,w]=size(a1); 45 46% テンプレートマッチング 47pt=ssd(s1,a1); 48 49% イメージ描画 50RGB=insertShape(s1,'Rectangle',[mini,mini1,w,h],'Color','red',5); 51
試したこと
Python OpenCVのプログラムを見ながら変更をしましたが、全然改良されません。
補足情報(FW/ツールのバージョンなど)
このプログラム自体の間違っているところがあればご指摘いただきたいです。
あなたの回答
tips
プレビュー