代码复现如下:
x=linspace(-20,20,32);
y=linspace(-20,20,32);
SINC_1=zeros(length(x),length(y));
for i=1:length(x)
for j=1:length(y)
SINC_1(i,j)=sinc(x(i))*sinc(y(j));
end
end
%SINC_1=imrotate(SINC_1,8,'bilinear','crop');
%Z=fftshift(fft2(SINC_1));
Z=fft2(SINC_1);
subplot(1,2,1);
imagesc(abs(Z));axis equal;axis([0 32 0 32]);
title('(a)幅度谱');
xlabel('垂直(采样点)');
ylabel('垂直频率(单元)');
subplot(1,2,2);
Z1=fftshift(fft2(fftshift(SINC_1)));
Z2=zeros(17*32,17*32);
Z2(8*32+1:9*32,8*32+1:9*32)=Z1;
sinc_1=ifftshift(ifft2(ifftshift(Z2)));
contour(abs(sinc_1),15);axis equal;axis([150 380 150 380]);
title('(b)处理后的点目标');
xlabel('水平(采样点)');
ylabel('水平频率(单元)');
2.18和2.20 的区别就在于第十代码%SINC_1=imrotate(SINC_1,8,'bilinear','crop');
1.SINC_1=imrotate(SINC_1,8,'bilinear','crop');
J = imrotate(I,-1,'bilinear','crop');将图像顺时针旋转 1 度,以实现更好的水平对齐。该示例指定双线性插值,并要求将结果裁剪到与原始图像相同的大小。
2.axis equal
纵横轴采用等长刻度
3.contour(abs(sinc_1),15)
contour(___,levels)
将要显示的等高线指定为上述任一语法中的最后一个参数。将 levels
指定为标量值 n
,以在 n
个自动选择的层级(高度)上显示等高线。要在某些特定高度绘制等高线,请将 levels
指定为单调递增值的向量。要在一个高度 (k
) 绘制等高线,请将 levels
指定为二元素行向量 [k k]
。
例如:
contour(X,Y,Z,20),将图像顺时针旋转 1 度,以实现更好的水平对齐。该示例指定双线性插值,并要求将结果裁剪到与原始图像相同的大小