clc
clear
image =imread('GF3.tiff');
Z = peaks(512);
Z=Z*10;
SNR=0;
B=awgn(Z,SNR);% pluse gaussian white noise
U=cos(B)+1*i*sin(B);
[width,height]=size(U);%��ȡͼ���Ⱥ߶�
UN = U;
real1=zeros(width,height);
imag1=zeros(width,height);
for x=1:width
for y=1:height
real1(x,y)= real(U(x,y));
imag1(x,y) = imag(U(x,y));
% R= sqrt(real1(x,y)^2+imag1(x,y)^2);
%UN(x,y)=U(x,y)/R;%%��һ��
end
end
piex=zeros(5,5);
real2=zeros(5,5);
imag2=zeros(5,5);
r1 = zeros(width,height);
for x=3:width-2
for y=3:height-2
piex=UN(x-2:x+2,y-2:y+2);
real2(:,:)=real(piex);
imag2(:,:)=imag(piex);
real3=sum(sum(real2))/25;
imag3=sum(sum(imag2))/25;
r1=sqrt(real3^2+imag3^2);%%��ģ
r=r1;
%r3=abs(r3);
end
end
% �趨�����ʼ������?% FFT�����趨
m=15;
n=15;
armw=(m-1)/2;%���ڿ��?
armh=(n-1)/2;%���ڸ߶�
% �趨��ͨ�˲�����
w=zeros(m,n);
w(armw:armw+2,armh:armh+2)=1;
% ��ʼ������
result=ones(width-m+1,height-n+1);
i1=ones(m,n);
i2=i1;
s=i1;
windows=i1;
% �趨��Ȩϵ��
%r=0.5;
%-------------------------------------------------------------------------
% �˲����?tic;%��ʱ��ʼ
for iw=(armw+1):(width-armw)
for ih=(armh+1):(height-armh)
a=(iw-armw):(iw+armw);%��
b=(ih-armh):(ih+armh);%��
%���FFT����
window=UN(a,b);
%FFT�任
i1=fft2(window);%��ά��ɢ����Ҷ�任
i2=fftshift(i1);%����Ҷ�任���ƽ��? s=abs(i2);
s=s.*w;
s=s^(r);
i2=ifft2(ifftshift(i2.*s));
%result(iw-armw,ih-armh)=angle(i2(armw,armh));
result(iw-armw,ih-armh)=atan2(imag(i2(armw,armh)),real(i2(armw,armh)));
%result(iw-armw,ih-armh)=i2(armw,armh);
end
ProcessingLine=iw;
end
imagesc(result)
%--------------------------------------------------------------------------
% % angle����Ľ��Ϊ-pi~pi,��Ҫת����0~2*pi
% [M N]=size(result);
% for ii=1:M
% for jj=1:N
% if result(ii,jj)<0
% result(ii,jj)=2*pi+result(ii,jj);
% end
% end
% end
% %executetime=toc;
% %--------------------------------------------------------------------------
% %result=result/2/pi*255;
% I=uint8(result);
%
% imagesc(result);
% axis image;
% colormap(jet);
% colorbar;