【matlab】Frequency Fusion
程序员文章站
2022-07-14 16:50:12
...
图中可以看出,高频(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导出eps或jpg图片的四种方法
-
苹果iOS 13.2测试版发布:Deep Fusion首发 iPhone 11拍照更强了
-
ANKER PowerCore Fusion PD上架苹果官方商城 内置氮化镓
-
matlab2014a怎么激活?matlab2014a安装破解激活图文详细教程
-
matlab R2013a怎么激活?matlab 2013a破解安装并激活详细图文教程
-
matlab如何实现曲线拟合? matlab做曲线拟合的教程
-
matlab绘制的曲线怎么设置线条类型和颜色?
-
Matlab2017b怎么安装?Matlab2017b详细安装图文步骤(附破解码及序列号)
-
mac怎么装win10系统?Mac上使用VMware Fusion 安装Windows 10技术预览版方法
-
RAC cache fusion机制实现原理分析