数字图像处理实现Albert Einstein和Marilyn Monroe图像融合

该博客介绍了通过图像处理技术实现Einstein和Monroe两张图片的融合过程。通过傅里叶变换、低通滤波和高通滤波,实现了不同特征的保留,并通过调整参数展示不同权重下的融合效果。实验结果表明,放大观察时Monroe更加突出,而缩小观察时Einstein更加明显。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标准图像测试:

%%%%本实验实现彩色图像融合
clc,clear,close all
Ioriginal11 = imread('timg4.jpg');%%读取图像1
Ioriginal12 = imread('timg5.jpg');
Ioriginal11 = rgb2ntsc(Ioriginal11); %转到ntsc色域空间
Ioriginal12 = rgb2ntsc(Ioriginal12);
IAfter031 = zeros(300,260,3);
for i = 1:3
    Ioriginal1 = Ioriginal11(:,:,i);
    Ioriginal2 = Ioriginal12(:,:,i);
% I01 = double(imresize(I(1:end,1:end),[300,300]));%%
I01 = double(imresize(Ioriginal1(1:end,1:end),[300,260])); %将图像大小设置为300*260
figure,imshow(I01,[])
I02 = double(imresize(Ioriginal2(1:end,1:end),[300,260]));
figure,imshow(I02,[])
I1 = ones(size(I01))*1; %%图像1滤波系数
for x = 1:size(I1,1)  %%定义理想数字低通滤波器
    for y = 1:size(I1,2)
        if ((x-size(I1,1)/2).^2+(y-size(I1,2)/2).^2)>25^2
            I1(x,y)=0; %高频分量为0
        end
    end
end
I2 = ones(size(I02))*1; %%图像2滤波系数
for x = 1:size(I2,1)  %%定义理想数字高通滤波器
    for y = 1:size(I2,2)
        if ((x-size(I2,1)/2).^2+(y-size(I2,2)/2).^2)<10^2
            I2(x,y)=0; %低频分量为0
        end
    end
end
% I2 = 1-I1;
fftI = fftshift(fft2(double(I01)));%%对图像1进行傅里叶变换并将零频率移到中心
fftIAfter01 = fftI.*I1;%%对图像1进行低通滤波
IAfter = ifft2(ifftshift(fftIAfter01));%对滤波后的频谱进行反变换得到滤波后的图像
figure,imshow(real(IAfter),[])%%显示图像
fftI = fftshift(fft2(double(I02)));
fftIAfter02 = fftI.*I2; %%对图像2进行高通滤波
IAfter = ifft2(ifftshift(fftIAfter02));
figure,imshow(real(IAfter),[])
alpha = [1 1] % 参数alpha用于修改Lena和Mona Lisa谁占得多,输入太大会产生特殊点的效果
fftIAfter03 = fftIAfter01*alpha(1)+fftIAfter02*alpha(2);%%%将滤波后的频谱相加融合
IAfter03 = ifft2(ifftshift(fftIAfter03)); %对相加后的频谱进行反变换得到融合后的图像
figure,imshow(real(IAfter03),[])
title('融合结果')
IAfter031(:,:,i)= (real(IAfter03));
end
IAfter031 = ntsc2rgb(IAfter031);
figure,imshow(real(IAfter031),[])

运行后,得到两张图像的融合:
在这里插入图片描述

Einstein&Monroe图像融合实验

clc,clear,close all
Ioriginal11 = imread('Albert_Einstein.jpg');  
Ioriginal12 = imread('Marilyn_Monroe.jpg');
Ioriginal11 = rgb2ntsc(Ioriginal11); 
Ioriginal12 = rgb2ntsc(Ioriginal12);
IAfter031 = zeros(300,260,3);
for i = 1:3
    Ioriginal1 = Ioriginal11(:,:,i);
    Ioriginal2 = Ioriginal12(:,:,i);
% I01 = double(imresize(I(1:end,1:end),[300,300]));
I01 = double(imresize(Ioriginal1(1:end,1:end),[300,260])); 
if i == 1
    figure,imshow(I01)
end
I02 = double(imresize(Ioriginal2(1:end,1:end),[300,260]));
if i == 1
figure,imshow(I02)
end
I1 = ones(size(I01))*1; 
for x = 1:size(I1,1)  
    for y = 1:size(I1,2)
        if ((x-size(I1,1)/2)^2+(y-size(I1,2)/2)^2)>25^2
            I1(x,y)=0; 
        end
    end
end
I2 = ones(size(I02))*1; 
for x = 1:size(I2,1)  
    for y = 1:size(I2,2)
        if ((x-size(I2,1)/2)^2+(y-size(I2,2)/2)^2)<10^2
            I2(x,y)=0; 
        end
    end
end
    fftI = fftshift(fft2(double(I01)));  
    fftIAfter01 = fftI.*I1;  
    IAfter = ifft2(ifftshift(fftIAfter01)); 
    fftI = fftshift(fft2(double(I02)));
    fftIAfter02 = fftI.*I2;  
    IAfter02 = ifft2(ifftshift(fftIAfter02));
    alpha = [0.95 0.4];  
    fftIAfter03 = fftIAfter01*alpha(1)+fftIAfter02*alpha(2); 
    IAfter03 = ifft2(ifftshift(fftIAfter03)); 
    IAfter031(:,:,i)= (real(IAfter03));
end
IAfter031 = ntsc2rgb(IAfter031);
figure,imshow(real(IAfter031))
title('融合效果')

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

放大了近看Marilyn Monroe更突出,缩略后远看Albert Einstein更突出。

名画(自行保存后对比缩小看和放大看):

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wayne_Fine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值