特别鸣谢程序来源:
1 【图像融合】拉普拉斯金字塔融合
2 【图像融合】高斯金字塔
以及前期基于该程序有一些解读,[学习笔记-图像处理篇]拉普拉斯金字塔图像融合法,是对应的。
注:
1)该程序基于matlab实现
2)仅可处理灰度图,如果是RGB,请转为灰度图
主程序
x0 = imread('color.bmp');
x1= rgb2gray(x0);
x2 = imread('thermal.bmp');
y = lapfusion(x1,x2,4);
subplot(1,3,1);imshow(x1);title('源图像1');
subplot(1,3,2);imshow(x2);title('源图像2');
subplot(1,3,3);imshow(uint8(y));title('Laplace金字塔融合图像');
%若要单独保存融合后图像,可使用下面语句
%imshow(uint8(y));
%imwrite(uint8(y),'lap_result_matlab.jpg');
子函数共有4个
function y = lapfusion( x1,x2,N )
%函数y = lapfusion( x1,x2,N )的功能是基于图像的laplace塔形分解实现两幅图像的融合
%输入参数:
% x1----原图像1
% x2----原图像2
% N----laplace塔形的层数
%输出参数:
% y----两幅原图像融合后的结果
%-----------------------------------------------%
x1=double(x1);
x2=double(x2);
L1=lap(x1,N); %分别建立两幅原图像的Laplace金字塔
L2=lap(x2,N);
temp1=[]; %temp1每次存储x1图像得到的Laplace金字塔L1的一层
temp2=[]; %temp2每次存储x2图像得到的Laplace金字塔L2的一层
L={
}; %L用来存储两幅图像融合后的Laplace金字塔
for i=1:N %分别对Laplace金字塔的每一层进行融合
temp1=L1{