conv2,是对矩阵求协方差,所以realpart和imagpart必须是矩阵,但你这里没有定义。
可以在for循环前面添加这两个矩阵的定义。
realpart(17+16,17+16) = 0.0;
imagpart(17+16,17+16) = 0.0;
for v=0:2
for u=0:5
k=pi*exp(-(v+2)/2*log(2));
q=u*pi/8;
for x=-16:16 %改变x,y的窗口大小,进行效果的比对。
for y=-16:16
tmp1=exp(-(k.*k*(x^2+y^2))/(2*sigma));
tmp2=cos(k*x*cos(q)+k*y*sin(q))-exp(-sigma/2);
tmp3=sin(k*x*cos(q)+k*y*sin(q))-exp(-sigma/2);
realpart(17+x,17+y)=tmp1*tmp2*k^2/sigma;
imagpart(17+x,17+y)=tmp1*tmp3*k^2/sigma;
end
end