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

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码及文献


💥1 概述

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

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

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

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

📚2 运行结果

部分代码:

function imf=swt_dct2(M1,M2)[m,n]=size(M1);
bs=4;
for i=1:bs:mfor j=1:bs:ncb1 = 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
endfigure,imshow(M1,[]);
figure,imshow(M2,[]);
figure,imshow(imf,[]);figure,imshow(im1,[]);figure(1231);imagesc(M1)axis offaxis image
figure,imshow(im2,[]);figure(1232);imagesc(M2)axis offaxis image
figure,imshow(im3,[]);figure(1233);imagesc(imf)axis offaxis image
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代码及文献

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/93062.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

selenium下载安装 -- 使用谷歌驱动碰到的问题

安装教程参考: http://c.biancheng.net/python_spider/selenium.html 1. 谷歌浏览器和谷歌驱动版本要对应(但是最新版本谷歌对应的驱动是没有的,因此要下载谷歌历史其他版本): 谷歌浏览器历史版本下载: https://www.chromedownloads.net/chrome64win/谷歌浏览器驱动下载: http:…

基于web的医院预约挂号系统/医院管理系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&a…

【GESP考级C++】1级样题 闰年统计

GSEP 1级样题 闰年统计 题目描述 小明刚刚学习了如何判断平年和闰年,他想知道两个年份之间(包含起始年份和终止年份)有几个闰年。你能帮帮他吗? 输入格式 输入一行,包含两个整数,分别表示起始年份和终止…

87、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->List相关命令

本次讲解要点: List相关命令:是指value中的数据类型 启动redis服务器: 打开小黑窗: C:\Users\JH>e: E:>cd E:\install\Redis6.0\Redis-x64-6.0.14\bin E:\install\Redis6.0\Redis-x64-6.0.14\bin>redis-server.exe redi…

MySQL约束

文章目录 简单介绍主键约束添加单列主键多列主键删除主键 自增长约束(auto_increment)语法:指定自增字段初始值 非空约束唯一约束(unique)默认约束(default)零填充约束(zerofill) 简单介绍 概念:表中数据的约束条件 作用:表在设计的时候加入…

【kubernetes】kubernetes中的调度

1 调度过程 调度的本来含义是指决定某个任务交给某人来做的过程,kubernetes中的调度是指决定Pod在哪个Node上运行。 k8s的调度分为2个过程: 预选:去掉不满足条件的节点优选:对剩下符合条件的节点按照一些策略进行排序&#xff…

[学习笔记]ARXML - Data Format

参考AUTOSAR文档: https://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_TPS_ARXMLSerializationRules.pdfhttps://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_TPS_ARXMLSerializationRules.pdf 编码 arxml只允许使用UTF-8编码&#xff…

【Oracle】Oracle系列之十五--存储过程

文章目录 往期回顾前言1. 基本概念(1)定义(2)存储过程与函数的区别(3)存储过程与触发器的区别 2. 创建和使用存储过程(1)创建存储过程(2)调用存储过程&#x…

【Java 进阶篇】JDBC ResultSet 遍历结果集详解

在Java数据库编程中,经常需要执行SQL查询并处理查询结果。ResultSet(结果集)是Java JDBC中用于表示查询结果的关键类之一。通过遍历ResultSet,我们可以访问和操作从数据库中检索的数据。本文将详细介绍如何使用JDBC来遍历ResultSe…

ubuntu 18.04 LTS安装opencv 3.4.16 + opencv_contrib 3.4.16

1.下载 opencv 3.4.16 opencv_contrib 3.4.16 其中,opencv_contrib解压后的多个文件夹复制到opencv内、合并 2.安装 参考博文: https://zhuanlan.zhihu.com/p/650792342 https://zhuanlan.zhihu.com/p/87197806 其中 (1)cmake前…

2023年中国金刚石工具产量、需求量、市场规模及行业细分产品规模[图]

金刚石工具就是以金刚石为增强体,以金属或聚合物为基体的一类功能复合材料。金刚石工具已经成为当今公认的、唯一有效的硬脆非金属材料加工工具,比如,只有用金刚石刀具能加工超硬的陶瓷,尚无其他代用品。金刚石工具根据其用途的不…

【VIM】初步认识VIM-2

2-6 Vim 如何搜索替换_哔哩哔哩_bilibili 1-6行将self改成this 精确替换quack单词为交

湖南特色农产品销售系统APP /基于android的农产品销售系统/基于android的购物系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的APP应运而生,各行各业相继进入信息管理时代&#x…

uboot启动流程-uboot内存分配

一. uboot启动流程 _main 函数中会调用 board_init_f 函数,本文继续简单分析一下 board_init_f 函数。 具体分析 board_init_f函数的第二部分:内存分配代码。 本文继上一篇文章的学习,地址如下: uboot启动流程-涉及board_init…

【C语言数据结构】线性表-顺序存储-动态分配(顺序表)

线性表-顺序存储-动态分配 代码实现 代码实现 #include<stdio.h> #include<stdlib.h> #include<stdbool.h>//线性表初始分配的长度 #define InitSize 3//线性表元素的数据类型 #define ElemType inttypedef struct {//定义线性表的元素数据&#xff0c;虽然…

玩客云Armbian_23.08.0-trunk_Onecloud_bookworm_edge_6.4.14.burn配置

固定IP # interface file auto-generated by buildrootauto lo iface lo inet loopback// 上面是默认的内容,下面是新增的内容,上下之间需要一个空行隔开 // 接口顶格写,属性的前面有一个tab的缩进 # The primary network interfaceauto eth0 iface eth0 inet staticaddress 1…

【QT】自定义组件ui类添加到主ui界面方法

1.添加自定义组件到项目中 add new选择如下 写好类方法&#xff0c;确定即可 2.将新创建的ui类加入到主ui界面 选中新创建ui类的父类空块&#xff0c;右键选择提升为 选择并添加新创建的类

如何搭建团队知识库?试试新的工具和方法吧!

知识本身没有价值&#xff0c;只有被利用的知识才能发挥作用。我们经常见到有许多“宏伟”的团队知识库&#xff0c;但是从来没有人去用…… 搭建团队知识库 没有人用的团队知识库存在的问题是“我们知道所有问题的答案&#xff0c;就是不知道问题是什么”。如何建立团队知识库…

业务拆分——微服务拆分独立出来的步骤

背景介绍 随着公司业务的变化&#xff0c;系统的架构需要不断的调整。当客户的需求不断细化&#xff0c;营销方案的不断调整&#xff0c;产品需要达到更细的粒度&#xff0c;以便产品可以灵活组合进行销售。故此时需要拆分一些公共的业务&#xff0c;作为独立的微服务部署&…

NLP中token总结

Token 可以被理解为文本中的最小单位。在英文中&#xff0c;一个 token 可以是一个单词&#xff0c;也可以是一个标点符号。在中文中&#xff0c;通常以字或词作为 token。ChatGPT 将输入文本拆分成一个个 token&#xff0c;使模型能够对其进行处理和理解 在自然语言处理&#…