天天看點

【圖像融合】基于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

繼續閱讀