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


    一、双树复小波变换简介

    1999年, Kingsbury提出了双树复小波变换。随后, 2005年, Seles nick等设计出了双树复小波变换的分解重构算法,这一算法的提出,使得双树复小波变换能够应用于信号分析和图像处理等领域。与小波变换不同,双树复小波变换具有近似位移不变性、数据冗余有限及方向选择性良好等特点,可以反映图像在六个方向上的分辨率变化。图2.4展示了多贝西小波和复数小波的分解示意图。
    在这里插入图片描述
    图2.4多贝西小波与复数小波分解示意图
    可以看出,多贝西小波只有一个维度的分解。复数小波则有实部和虚部两个维度。双树复小波变换每个维度使用两棵树,每个树都有短的低通滤波器和高通滤波器,以合成单个线性相位复合低通、高通滤波器对。两棵树中的过滤器正好是时间相反的。图2.5为一维双树复小波变换过程:
    图中树A、树B分别表示复数小波变换的实部和虚部,部和虚部,↓2代表隔点采样,h(x)和h(x)分别表示树A的低通滤波器和高通滤波器,其对应的尺度函数及小波函数分别为:
    在这里插入图片描述
    g.(x)和gi(x)则分别表示树B的低通滤波器和高通滤波器,其对应的尺度函数及小波函数分别为:
    在这里插入图片描述
    那么,一维的双树复小波可以由下式表示:
    e(t) =c, (t) +i eg(t) ·(2.3)
    二维的双树复小波变换需要用到二维小波。对图像进行分解时,双树复小波变换先沿着行方向分解,再对得到的结果进行列方向的分解,最终得到一个低频子带和六个代表不同方向的高频子带,这六个方向分别为:±15°,±45°,±75°。之后,得到的低频子带依然可以进行再分解。因此,若图像经过K次双树复小波变换分解后,将有6K+1个不同的子带,分别为6K个高频子带和一个低频子带。
    在这里插入图片描述
    图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版本及参考文献

    1 matlab版本
    2014a

    2 参考文献
    [1] 李梦萦.基于双树复小波变换和稠密SIFT描述子的多焦距图像融合[D].吉林大学

    3 备注
    简介此部分摘自互联网,仅供参考,若侵权,联系删除

  • 相关阅读:
    经典机器学习备忘录
    51单片机光照强度检测自动路灯开关仿真( proteus仿真+程序+报告+讲解视频)
    Flutter实现PS钢笔工具,实现高精度抠图的效果。
    Flink CDC (Mysql为例)
    通过v_COURSE和V_grade查看期末平均成绩在60分以上的课程名称
    Matlab点云处理及可视化第1期—基于KD树的邻域点搜索(柱状邻域、球状邻域及KNN)
    ES6:什么是Promise
    基于PPT的三维光路结构示意图绘制实例演示-技术细节
    RT-Thread GTC 2022 全球技术大会参与指南
    C++ Reference: Standard C++ Library reference: C Library: cstring
  • 原文地址:https://blog.csdn.net/TIQCmatlab/article/details/126200295