1 简介

阐述了基于拉普拉斯金字塔变换的图像融合原理和方法:首先对源图像分别进行拉普拉斯金字塔分 解,然后对分解后的各层图像采用不同的融合准则进行融合,最后,对融合金字塔做拉普拉斯金字塔反变换得到最终的融合图像.通过对红色图像的融合结 果分析,实验结果表明,该算法能得到具有更多有用信息的高对比度的融合图像.融合效果良好.

【图像融合】基于拉普拉斯金字塔算法实现彩色图像融合含Matlab源码_图像融合

【图像融合】基于拉普拉斯金字塔算法实现彩色图像融合含Matlab源码_matlab代码_02

​2 部分代码


          
          
close all;
clear;
clc;
%载入图像
TargetImg = imread('poolRGB.jpg');
SourceImg = imread('bearRGB.jpg');
SourceMask = im2bw(imread('bearMask.jpg'));
%获取裁剪边界
[SrcBoundry,~] = bwboundaries(SourceMask);
%绘制剪切边界
figure,imshow(SourceImg),axis image
hold on
for k = 1:length(SrcBoundry)
boundary = SrcBoundry{k};
plot(boundary(:,2),boundary(:,1),'r','LineWidth',2)
end
title('用于剪切的源图像预期区域');
%确定source图将要粘贴在target途中的具体位置,并产生新的Mask图
position_in_target = [10,225];%定义位置-融合实验用
[TargetRows,TargetCols,~] = size(TargetImg);%目标图的尺寸
[FusRow_in_SrcMask,FusCol_in_SrcMask] = find(SourceMask);%查找SourceMask中融合区的坐标
startFus_pos = [min(FusCol_in_SrcMask),min(FusRow_in_SrcMask)];
endFus_pos = [max(FusCol_in_SrcMask),max(FusRow_in_SrcMask)];%找到融合开始点和结束点
Fusion_size = endFus_pos - startFus_pos;
ImgFusion = cat(3, FusionImage(:,:,1), FusionImage(:,:,2), FusionImage(:,:,3));
figure, imagesc(uint8(ImgFusion)), axis image, title('融合图像');
imwrite(uint8(ImgFusion),'MyImgFusion.jpg')%保存图像为文件
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.

3 仿真结果

【图像融合】基于拉普拉斯金字塔算法实现彩色图像融合含Matlab源码_matlab代码_03

【图像融合】基于拉普拉斯金字塔算法实现彩色图像融合含Matlab源码_图像融合_04

【图像融合】基于拉普拉斯金字塔算法实现彩色图像融合含Matlab源码_图像融合_05

4 参考文献

[1]陈浩, 王延杰. 基于拉普拉斯金字塔变换的图像融合算法研究[J]. 激光与红外, 2009, 39(4):4.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【图像融合】基于拉普拉斯金字塔算法实现彩色图像融合含Matlab源码_图像融合_06