遥感图像融合将单张图分解为真实地物图、上采样LRMS、PAN和MS ,matlab全代码
时间: 2024-03-20 19:38:51 浏览: 66
以下是一份 Matlab 代码示例,用于将单张遥感图像分解为真实地物图、上采样LRMS、全色图像和多光谱图像。请注意,这里的图像分解方法是基于双高斯滤波器的融合算法。
```matlab
% 读取原始遥感图像
image = imread('input_image.tif');
% 分离全色图像和多光谱图像
pan = image(:,:,1); % 全色图像
ms = image(:,:,2:4); % 多光谱图像
% 上采样LRMS并与多光谱图像融合
lrms = imresize(pan,[size(ms,1) size(ms,2)],'bilinear');
fused = zeros(size(ms));
% 使用双高斯滤波器进行融合
for i = 1:size(ms,3)
fused(:,:,i) = bfltmerge(lrms,ms(:,:,i));
end
% 生成真实地物图
rl = zeros(size(fused));
for i = 1:size(ms,3)
rl(:,:,i) = fused(:,:,i).*pan./lrms;
end
% 显示分解后的图像
figure;
subplot(2,2,1);
imshow(pan);
title('全色图像');
subplot(2,2,2);
imshow(ms);
title('多光谱图像');
subplot(2,2,3);
imshow(lrms);
title('上采样LRMS');
subplot(2,2,4);
imshow(rl);
title('真实地物图');
% 保存分解后的图像
imwrite(pan,'pan.tif');
imwrite(ms,'ms.tif');
imwrite(lrms,'lrms.tif');
imwrite(rl,'rl.tif');
```
这份代码可以直接运行,输出分解后的图像,并保存在当前目录下。但是请注意,这里的代码只是一份示例,在实际应用中需要根据具体情况进行修改和完善。
阅读全文