【数字图像处理matlab】(乘积变换融合算法)

该博客介绍了一种使用MATLAB实现的基于PCA(主成分分析)的影像融合方法。通过高分辨率的全色影像和低分辨率的多光谱影像,利用imresize()函数进行最近邻插值的多光谱影像重采样,然后进行乘积变换融合。博客提供了详细的MATLAB代码示例,展示了如何将多光谱影像与高分辨率影像融合,并给出了融合结果的显示。
摘要由CSDN通过智能技术生成

【数字图像处理matlab】(基于PCA的影像融合)

输入一张高分辨率的全色影像HighResultion,一张低分辨率的多光谱影像Multispectral,采用乘积变换影像融合算法,其中多光谱重采样采用imresize()函数的最近邻插值算法。

function F=multiplicative_fuse(HighResultion,Multispectral)
%调用代码----------------------------------------------
%Image1=imread('HR.jpg');Image2=imread('MS.jpg');
%multiplicative_fuse(Image1,Image2);
%-----------------------------------------------------

%乘积变换融合
B_m=im2double(Multispectral);
B_h=im2double(HighResultion);

[row,column,~]=size(B_h);
[~,~,bands]=size(B_m);
R= B_m(:,:,1);  r=imresize(R,[row,column]);
G= B_m(:,:,2);  g=imresize(G,[row,column]);
B= B_m(:,:,3);  b=imresize(B,[row,column]);

for i=1:row
    for j=1:column
        r1(i,j)=r(i,j)*B_h(i,j);
        b1(i,j)=b(i,j)*B_h(i,j);
        g1(i,j)=g(i,j)*B_h(i,j);
    end
end
B_new=cat(3,r1,g1,b1);
subplot(1,3,1),imshow(HighResultion);
title('原高分辨率图');
subplot(1,3,2),imshow(Multispectral);
title('原低分辨率图');
subplot(1,3,3);imshow(B_new);
title('乘积变换融合');

end

测试:
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值