matlab fft2 原图,matlab三幅图像融合并计算其fft2频谱

clear;

Irgb_a = imread('1.jpg'); %读入图片

[m, n, l] = size(Irgb_a);

Igray_a = rgb2gray(Irgb_a); %转化成灰度图

Igfft_a = fft2(Igray_a); %对灰度图进行dct变换

I1 = im2double(Irgb_a); %将数据转换成双精度格式

for i = 1:m

for j = 1:n

for k = 1:l

I(i,j+(k-1)*n) = I1(i,j,k);

end

end

end

Irfft = fft2(I);

for i = 1:m

for j = 1:n

for k = 1:l

Irifft_a(i,j,k) = I(i,j+(k-1)*n);

end

end

end

%imshow(Igray_a);

%title('原始灰度图');

%figure, imshow(log(abs(Igfft_a)),[]), colormap(jet(64)),colorbar;

%title('空间频谱图');

%figure,imshow(Irgb_a);

%title('原始彩图');

%figure,imshow(Irifft_a);

%title('复原彩图');

Irgb_b = imread('2.jpg'); %读入图片

[m, n, l] = size(Irgb_b);

Igray_b = rgb2gray(Irgb_b); %转化成灰度图

Igfft_b = fft2(Igray_b); %对灰度图进行dct变换

I1 = im2double(Irgb_b); %将数据转换成双精度格式

for i = 1:m

for j = 1:n

for k = 1:l

I(i,j+(k-1)*n) = I1(i,j,k);

end

end

end

Irfft = fft2(I);

for i = 1:m

for j = 1:n

for k = 1:l

Irifft_b(i,j,k) = I(i,j+(k-1)*n);

end

end

end

%imshow(Igray_b);

%title('原始灰度图');

%figure, imshow(log(abs(Igfft_b)),[]), colormap(jet(64)),colorbar;

%title('空间频谱图');

%figure,imshow(Irgb_b);

%title('原始彩图');

%figure,imshow(Irifft_b);

%title('复原彩图');

Irgb_c = imread('3.jpg'); %读入图片

[m, n, l] = size(Irgb_c);

Igray_c = rgb2gray(Irgb_c); %转化成灰度图

Igfft_c = fft2(Igray_c); %对灰度图进行dct变换

I1 = im2double(Irgb_c); %将数据转换成双精度格式

for i = 1:m

for j = 1:n

for k = 1:l

I(i,j+(k-1)*n) = I1(i,j,k);

end

end

end

Irfft = fft2(I);

for i = 1:m

for j = 1:n

for k = 1:l

Irifft_c(i,j,k) = I(i,j+(k-1)*n);

end

end

end

%imshow(Igray_c);

%title('原始灰度图');

%figure, imshow(log(abs(Igfft_c)),[]), colormap(jet(64)),colorbar;

%title('空间频谱图');

%figure,imshow(Irgb_c);

%title('原始彩图');

%figure,imshow(Irifft_c);

%title('复原彩图');

%叠加部分程序

a=imread('1.jpg');

%a=rgb2gray(a);

b=imread('2.jpg');

%b=rgb2gray(b);

c=imread('3.jpg');

%c=rgb2gray(c);

T=0.25; %融合的一个比例值

t=[T^2 2*T*(1-T) (1-T)^2];

result_image=a.*t(1)+b.*t(2)+c.*t(3);

%计算频谱

Irgb_r = result_image; %读入图片

[m, n, l] = size(Irgb_r);

Igray_r = rgb2gray(Irgb_r); %转化成灰度图

Igfft_r = fft2(Igray_r); %对灰度图进行dct变换

I1 = im2double(Irgb_r); %将数据转换成双精度格式

for i = 1:m

for j = 1:n

for k = 1:l

I(i,j+(k-1)*n) = I1(i,j,k);

end

end

end

Irfft = fft2(I);

for i = 1:m

for j = 1:n

for k = 1:l

Irifft_r(i,j,k) = I(i,j+(k-1)*n);

end

end

end

%imshow(Igray_r);

%title('原始灰度图');

%figure, imshow(log(abs(Igfft_r)),[]), colormap(jet(64)),colorbar;

%title('空间频谱图');

%figure,imshow(Irgb_r);

%title('原始彩图');

%figure,imshow(Irifft_r);

%title('复原彩图');

figure;

subplot(221);

imshow(Irgb_a);

title('原始彩图a');

subplot(222);

imshow(Irgb_b);

title('原始彩图b');

subplot(223);

imshow(Irgb_c);

title('原始彩图c');

subplot(224);

imshow(Irgb_r);

title('原始彩图r');

figure;

subplot(221);

imshow(log(abs(Igfft_a)),[]), colormap(jet(64)),colorbar;

title('空间频谱图a');

subplot(222);

imshow(log(abs(Igfft_b)),[]), colormap(jet(64)),colorbar;

title('空间频谱图b');

subplot(223);

imshow(log(abs(Igfft_c)),[]), colormap(jet(64)),colorbar;

title('空间频谱图c');

subplot(224);

imshow(log(abs(Igfft_r)),[]), colormap(jet(64)),colorbar;

title('空间频谱图r');

figure;

subplot(221);

imshow(log(abs(Igfft_r-Igfft_a)),[]), colormap(jet(64)),colorbar;

title('r频谱-a频谱');

subplot(222);

imshow(log(abs(Igfft_r-Igfft_b)),[]), colormap(jet(64)),colorbar;

title('r频谱-b频谱');

subplot(223);

imshow(log(abs(Igfft_r-Igfft_c)),[]), colormap(jet(64)),colorbar;

title('r频谱-c频谱');

subplot(224);

imshow(log(abs(Igfft_r-Igfft_r)),[]), colormap(jet(64)),colorbar;

title('r频谱-r频谱');

结果例:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值