天天看点

【图像融合】基于matlab双树复小波变换像素级图像融合【含Matlab源码 2024期】

一、双树复小波变换简介

1999年, Kingsbury提出了双树复小波变换。随后, 2005年, Seles nick等设计出了双树复小波变换的分解重构算法,这一算法的提出,使得双树复小波变换能够应用于信号分析和图像处理等领域。与小波变换不同,双树复小波变换具有近似位移不变性、数据冗余有限及方向选择性良好等特点,可以反映图像在六个方向上的分辨率变化。图2.4展示了多贝西小波和复数小波的分解示意图。

【图像融合】基于matlab双树复小波变换像素级图像融合【含Matlab源码 2024期】

图2.4多贝西小波与复数小波分解示意图

可以看出,多贝西小波只有一个维度的分解。复数小波则有实部和虚部两个维度。双树复小波变换每个维度使用两棵树,每个树都有短的低通滤波器和高通滤波器,以合成单个线性相位复合低通、高通滤波器对。两棵树中的过滤器正好是时间相反的。图2.5为一维双树复小波变换过程:

图中树A、树B分别表示复数小波变换的实部和虚部,部和虚部,↓2代表隔点采样,h(x)和h(x)分别表示树A的低通滤波器和高通滤波器,其对应的尺度函数及小波函数分别为:

【图像融合】基于matlab双树复小波变换像素级图像融合【含Matlab源码 2024期】

g.(x)和gi(x)则分别表示树B的低通滤波器和高通滤波器,其对应的尺度函数及小波函数分别为:

【图像融合】基于matlab双树复小波变换像素级图像融合【含Matlab源码 2024期】

那么,一维的双树复小波可以由下式表示:

e(t) =c, (t) +i eg(t) ·(2.3)

二维的双树复小波变换需要用到二维小波。对图像进行分解时,双树复小波变换先沿着行方向分解,再对得到的结果进行列方向的分解,最终得到一个低频子带和六个代表不同方向的高频子带,这六个方向分别为:±15°,±45°,±75°。之后,得到的低频子带依然可以进行再分解。因此,若图像经过K次双树复小波变换分解后,将有6K+1个不同的子带,分别为6K个高频子带和一个低频子带。

【图像融合】基于matlab双树复小波变换像素级图像融合【含Matlab源码 2024期】

图2.6图像的二层DT CWT分解示意图

二、部分源代码

clear all; close all; home;
% User selection (1,2,3,…)
 J = 6; % number of decomposition levels used in the fusion[Faf,Fsf] = FSfarras; % first stage filters
 [af,sf] = dualfilt1; % second stage filters% images to be fused
 im1 = double(imread(‘saras91.jpg’));
 im2 = double(imread(‘saras92.jpg’));
 figure; subplot(121);imshow(im1,[]); subplot(122); imshow(im2,[]);% image decomposition
 w1 = cplxdual2D(im1,J,Faf,af);
 w2 = cplxdual2D(im2,J,Faf,af);% Image fusion process start here
 for j=1:J % number of stages
 for p=1:2 %1:real part & 2: imaginary part
 for d1=1:2 % orientations
 for d2=1:3
 x = w1{j}{p}{d1}{d2};
 y = w2{j}{p}{d1}{d2};
 D = (abs(x)-abs(y)) >= 0;
 wf{j}{p}{d1}{d2} = D.*x + (~D).y; % image fusion
 end
 end
 end
 end
 for m=1:2 % lowpass subbands
 for n=1:2
 wf{J+1}{m}{n} = 0.5(w1{J+1}{m}{n}+w2{J+1}{m}{n}); % fusion of lopass subbands
 end
 end% fused image
 imf = icplxdual2D(wf,J,Fsf,sf);
 figure; imshow(imf,[]);
 function [af, sf] = dualfilt1% Kingsbury Q-filters for the dual-tree complex DWT
 %
 % USAGE:
 % [af, sf] = dualfilt1
 % OUTPUT:
 % af{i}, i = 1,2 - analysis filters for tree i
 % sf{i}, i = 1,2 - synthesis filters for tree i
 % note: af{2} is the reverse of af{1}
 % REFERENCE:
 % N. G. Kingsbury, “A dual-tree complex wavelet
 % transform with improved orthogonality and symmetry
 % properties”, Proceedings of the IEEE Int. Conf. on
 % Image Proc. (ICIP), 2000
 % See dualtree
 %
 % WAVELET SOFTWARE AT POLYTECHNIC UNIVERSITY, BROOKLYN, NY
 % http://taco.poly.edu/WaveletSoftware/% These cofficients are rounded to 8 decimal places.
af{1} = [
 0.03516384000000 0
 0 0
 -0.08832942000000 -0.11430184000000
 0.23389032000000 0
 0.76027237000000 0.58751830000000
 0.58751830000000 -0.76027237000000
 0 0.23389032000000
 -0.11430184000000 0.08832942000000
 0 0
 0 -0.03516384000000
 ];af{2} = [
 0 -0.03516384000000
 0 0
 -0.11430184000000 0.08832942000000
 0 0.23389032000000
 0.58751830000000 -0.76027237000000
 0.76027237000000 0.58751830000000
 0.23389032000000 0
 -0.08832942000000 -0.11430184000000
 0 0
 0.03516384000000 0
 ];sf{1} = af{1}(end👎1, 😃;
sf{2} = af{2}(end👎1, 😃;      

三、运行结果

【图像融合】基于matlab双树复小波变换像素级图像融合【含Matlab源码 2024期】
【图像融合】基于matlab双树复小波变换像素级图像融合【含Matlab源码 2024期】

四、matlab版本及参考文献

1 matlab版本

2014a

继续阅读