【matlab】Frequency Fusion

在这里插入图片描述


在这里插入图片描述

4f
在这里插入图片描述

FFT

图中可以看出,高频(Fourier变换后的四周)对应着图片边缘(细节)信息,低频(Fourier变换后的中心)对应着图片平坦区域。

i=imread('333.png');
j=imread('222.png');
ii=rgb2gray(i);
jj=rgb2gray(j);
%=======显示原图
subplot(2,3,1),imshow(ii);
title('original_i');
subplot(2,3,4),imshow(jj);
title('original_j');
%=======fft
i1 = fft2(ii);
i2 =fftshift(i1);
j1 = fft2(jj);
j2 =fftshift(j1);
%=======图大小和遮挡半径(方形)
[m,n] = size(i2);
r = 20;
%=======去掉第一张图的低频信息
for p = -r:r
    for q = -r:r
        i2(m/2+p,n/2+q) = 0;
    end
end
%=======去掉第二张图的高频信息
for p1 = 1:m
    for q1 = 1:n
        if p1>=m/2-r && p1<=m/2+r && q1>=n/2-r && q1<=n/2+r  
           j2(p1,q1)  = j2(p1,q1);
        else
            j2(p1,q1) = 0;
        end
    end
end
%=======可视化转换坐标后的傅里叶频谱图
i3=log(abs(i2));
j3=log(abs(j2));
subplot(2,3,2),imshow(i3,[]);
title('Fourier_i');
subplot(2,3,5),imshow(j3,[]);
title('Fourier_j');
%=======反FT
i5 = real(ifft2(ifftshift(i2))); %===频域的图反变换到空域 并取实部
i6 = im2uint8(mat2gray(i5)); %===取其灰度图
subplot(2,3,3),imshow(i6);
title('anti-Fourier_i');
j5 = real(ifft2(ifftshift(j2))); %===频域的图反变换到空域 并取实部
j6 = im2uint8(mat2gray(j5)); %===取其灰度图
subplot(2,3,6),imshow(j6);
title('anti-Fourier_j');
%=======低频高频结合
ij = i2+j2;
ij1 = real(ifft2(ifftshift(ij))); %===频域的图反变换到空域 并取实部
ij2 = im2uint8(mat2gray(ij1)); %===取其灰度图
figure
imshow(ij2);
title('anti-Fourier_i');

关于傅里叶更细致的操作,请查看 图像傅里叶变换的幅度谱和相位谱的以及反变换
关于傅里叶原理,可以参考:深入浅出的讲解傅里叶变换(真正的通俗易懂)
关于 matlab 的安装,可以参考:Matlab 2015b安装教程

幅值和相位谁更重要?

在这里插入图片描述 在这里插入图片描述

%读入图像
X=imread('1.jpg');
Y=imread('2.jpg');
%转为灰度图
x = rgb2gray(X);
y = rgb2gray(Y);
% 傅里叶变换
xf=fft2(double(x));
yf=fft2(double(y));
%取幅度和相位
xf1=abs(xf);
xf2=angle(xf);
yf1=abs(yf);
yf2=angle(yf);

%交换相位
xfr=xf1.*cos(yf2)+xf1.*sin(yf2).*1i;
yfr=yf1.*cos(xf2)+yf1.*sin(xf2).*1i;
%傅里叶逆变换
xr=abs(ifft2(xfr));
yr=abs(ifft2(yfr));
%转换成uint8类型
xf1=uint8(xf1);
xf2=uint8(xf2);
yf1=uint8(yf1);
yf2=uint8(yf2);
xr=uint8(xr);
yr=uint8(yr);

%显示
figure(1)
subplot(2,2,1);imshow(xf1,[]);title('x 幅度谱');
subplot(2,2,2);imshow(yf1,[]);title('y 幅度谱');
subplot(2,2,3);imshow(xf2,[]);title('x 相位谱');
subplot(2,2,4);imshow(yf2,[]);title('y 相位谱');

figure(2)
subplot(2,2,1);imshow(x);title('x 灰度图');
subplot(2,2,2);imshow(y);title('y 灰度图');
subplot(2,2,3);imshow(xr,[]);title('x 幅度谱 与 y相位谱');
subplot(2,2,4);imshow(yr,[]);title('y 幅度谱 与 x相位谱');

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值