【图像融合】基于非下采样Contourlet变换nsct算法实现红外图像和可见光图像的融合matlab源码

简介: 【图像融合】基于非下采样Contourlet变换nsct算法实现红外图像和可见光图像的融合matlab源码

1 简介

本论文主要研究基于非采样Contourlet变换的可见光与红外图像融合技术。本论文首先在国内外的研究基础上,通过分析图像融合技术的基本概念和原理,研究了图像融合技术一些典型算法。结合非采样Contourlet变换多尺度多分辨率和平移不变性的特点,提出一种基于非采样Contourlet变换的可见光与红外图像融合方法。本文的主要工作如下:  首先总结了小波变换的定义、性质,多尺度分析原理,二维小波变换和小波变换在图像处理中的应用。由于小波变换缺乏平移不变性,简明的分析和整理了小波变换在图像处理中的缺陷。然后详细的研究了Contourlet变换的基本理论、非采样Contourlet变换的原理与实现及其在可见光与红外图像融合中的应用。然后针对传统的基于非采样Contourlet变换图像融合准则,提出了一种新的低频和高频通道的融合准则。在非采样Contourlet变换的基础上,通过新的融合准则,对图像进行非采样Contourlet变换的分解,对低频系数进行了平均加权;将高频系数先通过归一化能量之差和阈值的比较,然后进行分步融合;最后进行非采样Contourlet变换的重构,得出融合图像。由于可见光源图像和红外源图像的图像差距较大,融合过程中丢失的信息量较多,所以在非采样Contourlet图像的融合中,提出了“二次”NSCT图像融合。主要是将第一次图像融合后得到的新融合系数,与源图像中图像信息较多的源图像再进行一次融合,获取丢失较多的信息。  通过小波变换、Contourlet变换、非采样Contourlet变换和本文的方法对可见光源图像和红外源图像进行融合,最后的实验结果得出本文提出的方法在人类视觉特点和标准融合评价指标上的优势。

2 部分代码

%NSCT_imagefusion%%实现红外与可见光图像融合;%初始化%clear all;close all;clc;%初始化结束%%计时开始%tic;  path(path,'nsct_toolbox');path(path,'ziji');kk=1.5;%%%%%%%%%%%输入图像%%%%%%%%%%%[input_image_TV_int_RGB, input_image_TV_int_MAP] = imread('红外.jpg');                    %输入gif格式的可见光图像%% input_image_TV_int_RGB = uint8(256*ind2rgb(input_image_TV_int_GIF, input_image_TV_int_MAP));     %将gif格式数据转换为RGB格式数据%[input_image_IR_int_RGB, input_image_IR_int_MAP] =  imread('可见光.jpg');                    %输入gif格式的红外图像%% input_image_IR_int_RGB = uint8(256*ind2rgb(input_image_IR_int_GIF, input_image_IR_int_MAP));     %将gif格式数据转换为RGB格式数据%%%%%%%%%%%%%%%输入图像结束%%%%%%%%%%%%%%[Ny,Nx] = size(input_image_TV_int_RGB);  %%%%%%%%%%%%图像预处理%%%%%%%%%%%%%将可见光图像的格式转换为IHS格式%input_image_TV_int_IHS = rgb2ihs( input_image_TV_int_RGB );input_image_TV_IHS = double(input_image_TV_int_IHS);                    %将输入图像的数据类型转换为双精度数据类型%input_image_TV_I =  256*input_image_TV_IHS(:,:,3);                            %将输入图像的I分量提取出来以进行NSCT分解%%将红外图像的格式转换为gray格式%input_image_IR_int = rgb2gray( input_image_IR_int_RGB );input_image_IR= double(input_image_IR_int);                  %将输入图像的数据类型转换为双精度数据类型%input_image_TV_S =  input_image_TV_IHS(:,:,2);input_image_TV_H =  input_image_TV_IHS(:,:,1);figure;subplot(1,3,1);imshow(uint8(input_image_TV_I));title('Original TV image I')       %显示输入可见光图像的I分量%subplot(1,3,2);imshow(uint8(input_image_IR));title('Original IR image Gray')   %显示输入红外图像的灰度图像%%%%%%%%%%%%%%%%%图像预处理结束%%%%%%%%%%%%%%%%%金字塔表示参数%Nsc = ceil(log2(min(Ny,Nx)) - 7);    %分解尺度的数量 (自适应于图像尺寸)%Nor = 8;                     %每级分解的方向数%%%%%%%%%%%%%%%%%初始化参数结束%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%NSCT子带分解%%%%%%%%%%%%%%%%初始化NSCT子带分解参数%pfilter = 'maxflat' ;                               %金字塔滤波器%dfilter = 'dmaxflat7' ;                             %方向滤波器%nlevels=zeros(1,Nsc+1);for i=1:Nsc+1    nlevels(i)=log2(Nor);                           %初始化分解尺度%end%初始化NSCT子带分解参数结束%%%%%%%%%%%%%%%%NSCT子带重构%%%%%%%%%%%%%%%out_image_end_I = nsctrec( coeffs_rec, dfilter, pfilter ) ;    %重构灰度图像%  subplot(133)imshow(uint8(out_image_end_I));title('融合图像I');out_image_end=zeros(Ny,Nx,3);                            %初始化彩色图像输出矩阵%out_image_end=cat(3,input_image_TV_H,input_image_TV_S,out_image_end_I/256);                      out_image_end_RGB=256*ihs2rgb(double(out_image_end));           %将输出彩色图像转换为RGB格式%              figure;imshow(uint8(out_image_end_RGB));                        %显示融合后彩色图像%imwrite(uint8(out_image_end_RGB),'SWT22.bmp','bmp');toc;

3 仿真结果

4 参考文献

[1]汪攀. 基于非采样Contourlet变换的可见光与红外图像融合[D]. 南昌航空大学, 2012.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

目录
打赏
0
0
0
0
826
分享
相关文章
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
95 2
基于NSCT非采样轮廓波变换和CNN网络人脸识别matlab仿真
本项目展示了一种结合非采样轮廓波变换(NSCT)与卷积神经网络(CNN)的人脸识别系统。通过NSCT提取多尺度、多方向特征,并利用CNN的强大分类能力实现高效识别。项目包括ORL人脸库的训练结果对比,提供Matlab 2022a版本下的完整代码及详细中文注释,另有操作步骤视频指导。
织物图像的配准和拼接算法的MATLAB仿真,对比SIFT,SURF以及KAZE
本项目展示了织物瑕疵检测中的图像拼接技术,使用SIFT、SURF和KAZE三种算法。通过MATLAB2022a实现图像匹配、配准和拼接,最终检测并分类织物瑕疵。SIFT算法在不同尺度和旋转下保持不变性;SURF算法提高速度并保持鲁棒性;KAZE算法使用非线性扩散滤波器构建尺度空间,提供更先进的特征描述。展示视频无水印,代码含注释及操作步骤。
基于LK光流提取算法的图像序列晃动程度计算matlab仿真
该算法基于Lucas-Kanade光流方法,用于计算图像序列的晃动程度。通过计算相邻帧间的光流场并定义晃动程度指标(如RMS),可量化图像晃动。此版本适用于Matlab 2022a,提供详细中文注释与操作视频。完整代码无水印。
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
103 1
基于粒子群优化的图像融合算法matlab仿真
这是一个基于粒子群优化(PSO)的图像融合算法,旨在将彩色模糊图像与清晰灰度图像融合成彩色清晰图像。在MATLAB2022a中测试,算法通过PSO求解最优融合权值参数,经过多次迭代更新粒子速度和位置,以优化融合效果。核心代码展示了PSO的迭代过程及融合策略。最终,使用加权平均法融合图像,其中权重由PSO计算得出。该算法体现了PSO在图像融合领域的高效性和融合质量。
|
18天前
|
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
AI助理

阿里云 AI 助理已上线!

快来体验一下吧。