`
lovnet
  • 浏览: 6705492 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

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频谱');



结果例:





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics