• 【红外与可见光图像融合】离散平稳小波变换域中基于离散余弦变换和局部空间频率的红外与视觉图像融合方法(Matlab代码实现)


     💥💥💞💞欢迎来到本博客❤️❤️💥💥

    🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

    ⛳️座右铭:行百里者,半于九十。

    📋📋📋本文目录如下:🎁🎁🎁

    目录

    💥1 概述

    📚2 运行结果

    🎉3 参考文献

    🌈4 Matlab代码及文献


    💥1 概述

    基于SWT_DCT_SF的红外与可见光图像融合方法是一种通过结合离散稳态小波变换(DSWT)、离散余弦变换(DCT)和局部空间频率(LSF)来混合融合红外和可见光图像的方法。

    为了提高红外和视觉图像融合的性能,并提供更好的视觉效果,本文提出了一种新的融合方法。该方法首先利用DSWT将源图像的重要特征分解为一系列不同层次和空间频率的子图像。这样做的目的是为了捕捉图像的细节和结构信息。接下来,利用DCT根据不同频率的能量分离子图像的重要细节。DCT能够有效地提取图像的频域特征,从而使得融合后的图像更加清晰和自然。最后,应用LSF增强DCT系数的区域特征,以帮助图像特征的提取和融合。LSF可以提供更多的空间信息,从而提高融合效果。

    为了评估所提方法的有效性,我们使用了一些常用的图像融合方法和评价指标进行了实验。实验结果表明,所提方法能够达到较好的融合效果,比其他常规图像融合方法更有效。通过将红外和可见光图像的特征进行合理的融合,我们可以获得更全面和准确的图像信息,从而提高图像的识别和分析能力。这对于许多应用领域,如军事、安防和医学图像处理等具有重要的意义。

    总之,基于SWT_DCT_SF的红外与可见光图像融合方法是一种有效的融合方法,能够提高红外和可见光图像的融合效果,并提供更好的视觉效果。这种方法可以应用于各种图像处理领域,为相关应用提供更全面和准确的图像信息。

    📚2 运行结果

    部分代码:

    1. function imf=swt_dct2(M1,M2)
    2. [m,n]=size(M1);
    3. bs=4;
    4. for i=1:bs:m
    5. for j=1:bs:n
    6. cb1 = M1(i:i+bs-1,j:j+bs-1);
    7. cb2 = M2(i:i+bs-1,j:j+bs-1);
    8. CB1=dct2(cb1);
    9. CB2=dct2(cb2);
    10. CBF= fusionrule(CB1,CB2,CB1,CB2);
    11. cbf=idct2(CBF);
    12. imf(i:i+bs-1,j:j+bs-1)=cbf;
    13. im1(i:i+bs-1,j:j+bs-1)=CB1;
    14. im2(i:i+bs-1,j:j+bs-1)=CB2;
    15. im3(i:i+bs-1,j:j+bs-1)=CBF;
    16. end
    17. end
    18. figure,imshow(M1,[]);
    19. figure,imshow(M2,[]);
    20. figure,imshow(imf,[]);
    21. figure,imshow(im1,[]);
    22. figure(1231);
    23. imagesc(M1)
    24. axis off
    25. axis image
    26. figure,imshow(im2,[]);
    27. figure(1232);
    28. imagesc(M2)
    29. axis off
    30. axis image
    31. figure,imshow(im3,[]);
    32. figure(1233);
    33. imagesc(imf)
    34. axis off
    35. axis image
    36. end

    function imf=swt_dct2(M1,M2)

    [m,n]=size(M1);
    bs=4;
    for i=1:bs:m
        for j=1:bs:n
            cb1 = M1(i:i+bs-1,j:j+bs-1);
            cb2 = M2(i:i+bs-1,j:j+bs-1);
             CB1=dct2(cb1);
             CB2=dct2(cb2);
             CBF= fusionrule(CB1,CB2,CB1,CB2);
            cbf=idct2(CBF);
            imf(i:i+bs-1,j:j+bs-1)=cbf;
            im1(i:i+bs-1,j:j+bs-1)=CB1;
            im2(i:i+bs-1,j:j+bs-1)=CB2;
            im3(i:i+bs-1,j:j+bs-1)=CBF;
            
        end
    end

    figure,imshow(M1,[]);
    figure,imshow(M2,[]);
    figure,imshow(imf,[]);

    figure,imshow(im1,[]);
               figure(1231);
               imagesc(M1)
               axis off
               axis image
    figure,imshow(im2,[]);
               figure(1232);
               imagesc(M2)
               axis off
               axis image
    figure,imshow(im3,[]);
               figure(1233);
               imagesc(imf)
               axis off
               axis image
    end
     

    🎉3 参考文献

    文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

    🌈4 Matlab代码及文献

  • 相关阅读:
    Go 1.22 中的 For 循环
    几百行代码实现一个 JSON 解析器
    python-(4-3)数据类型的应用(元组、集合)
    安卓可视大屏寻呼台 兼容标准sip协议
    【电工基础】电路的基本概念与基本定律
    结构体的简单介绍(4)——位段
    LeetCode 206. 反转链表(迭代+递归)
    金山云:基于 JuiceFS 的 Elasticsearch 温冷热数据管理实践
    如何移除事件监听器
    MAC MINI 2012安装Montery折腾笔记
  • 原文地址:https://blog.csdn.net/Yan_she_He/article/details/133150402