图像的融合是将两幅或多幅图像融合在一起,以获取对同一场景的更为精确、更为全面、更为可靠的图像描述。融合算法应该充分利用各原图像的互补信息,使融合后的图像更适合人的视觉感受,适合进一步分析的需要。例如在实际摄影拍照时,由于焦距的缘故,近景或远景总有一者可能处于模糊不清的状态。此时运用图像融合技术就可以将两张模糊的图片(一张近景模糊,一张远景模糊)进行融合。小波变换是图像的多尺度、多分辨率分解,它可以聚焦到图像的任意细节。

随着小波理论及其应用的发展,将小波多分辨率分解用于像素级图像融合也已经得到广泛的应用。具体实现时,首先对每一幅原图像分别进行小波变换,建立图像的小波塔型分解;然后对各分解层分别进行融合处理。各分解层上的不同频率分量可采用不同的融合算子进行融合处理,最终得到融合后的小波金字塔;最后对融合后所得的小波金字塔进行小波重构,所得到的重构图像即为融合图像。

图1  用小波进行图像融合

在MATLAB中我们可以直接使用函数wfusimg()来实现图像的融合,下面给出它的常用语法形式:

XFUS = wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH)

[XFUS,TXFUS,TX1,TX2] =wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH)

其中,X1和X2是待融合的两幅原始图像。参数WNAME给出要采用哪种小波,而LEVEL则给出了小波分解的层数。需要特别说明的是参数AFUSMETH和DFUSMETH,它们分别指定了低频(近似)信息和高频(细节)信息的融合方法。具体的可选项有'max'、'min'、'mean'、'img1'、'img2'或者'rand',它们分别表示近似和细节信息的融合方式为取X1和X2对应元素中的最大值、最下值、平均值、前者、后者或者随机选择。返回值XFUS是融合后的结果图像,而TXFUS、TX1和TX2则对应XFUS、X1和X2的小波分解树。

下面这段代码演示了利用小波工具箱中的函数wfusimg()来实现图像融合的方法。小波变换的绝对值大的小波系数,对应着显著的亮度变化,也就是图像中的显著特征。于是选择绝对值大的小波系数作为保留细节所需的小波系数。低频部分系数可以选择二者之间的最大值,也可以采用二者之间的平均值。最后重构出图像即可。

X1 = imread('cathe1.bmp');

X2 = imread('cathe2.bmp');

XFUS = wfusimg(X1,X2,'sym4',5,'mean','max');

imshow(XFUS,[]);

该段程序的运行结果如图1所示,第三幅图像就是将前两幅图像进行融合后的结果。易见,融合处理后的结果成功去除了前两幅图像中模糊不清的部分。

当然,我们也可以不使用小波工具箱中给出的现成函数,而选择自己动手实现基于小波的图像融合算法。这对我们实际了解该算法是如何进行的大有裨益。下面这段示例程序实现了与前面代码段相同的作用,请读者留意注释说明的部分。另需说明的是,下面这段程序仅仅是为了演示算法实现而编写的,因此并没做异常处理的考虑,我们默认待处理的两幅原始图像的尺寸是一样的。

X1 = imread('cathe1.bmp');

X2 = imread('cathe2.bmp');

M1 = double(X1) / 256;

M2 = double(X2) / 256;

N = 4;

wtype = 'sym4';

[c0,s0] = wavedec2(M1, N, wtype);

[c1,s1] = wavedec2(M2, N, wtype);

length = size(c1);

Coef_Fusion = zeros(1,length(2));

%低频系数的处理,取平均值

Coef_Fusion(1:s1(1,1)) = (c0(1:s1(1,1))+c1(1:s1(1,1)))/2;

%处理高频系数,取绝对值大者,这里用到了矩阵乘法

MM1 = c0(s1(1,1)+1:length(2));

MM2 = c1(s1(1,1)+1:length(2));

mm = (abs(MM1)) > (abs(MM2));

Y  = (mm.*MM1) + ((~mm).*MM2);

Coef_Fusion(s1(1,1)+1:length(2)) = Y;

%重构

Y = waverec2(Coef_Fusion,s0,wtype);

imshow(Y,[]);

上面这段代码中用到了小波重构函数waverec2(),函数waverec2()其实就是wavedec2()的相反过程,该函数的常用语法形式如下:

X = waverec2(C,S,'wname')

X = waverec2(C,S,Lo_R,Hi_R)

其中,参数C、S、N和'wname'的意义都与二维小波分解函数wavedec2()中定义的一样,这里不再赘言。Lo_R是重构低通滤波器,Hi_R是重构高通滤波器。

图像融合在工业图像采集中具有非常重要的应用。通常,在不同的焦距下,由工业摄像头拍摄的一组图像会因为景深的不同而产生局部模糊的现象,为得到全局的清晰图像,势必要对整组图像进行融合,这时小波变换无疑是首选处理技术。

在图像融合过程中,小波基的种类和小波分解的层数对融合效果有很大的影响,对特定的图像来说,哪一种小波基的融合效果最好,分解到哪一层最合适,则是算法设计者需要研究的问题。

利用小波融合对由聚焦失败导致的图像模糊进行修复相关推荐

  1. android手机内存越来越小,安卓手机因软件安装失败 导致手机内存越来越小解决方法...

    对于很多安卓手机用户来说,手机还没用上多久,尼玛的手机内存怎么就变得越来越少了.看看自己的手机,游戏和软件也没装多少啊?这是为什么捏?其实,每次我们安装软件或者游戏失败之后,就会在手机中留下一些垃圾文 ...

  2. 百度地图开发加载瓦片图片失败导致白块问题修复处理

    1. 问题 在用 百度地图 3.0 api开发时发现,地图有时候有些瓦片图片加载不出来,最后导致白块出现 2. 问题排查 通过代码调试,最后发现是使用 map.setMapStyle 方法后出现,于是 ...

  3. 【图像融合】基于matlab主成分结合小波离散变换PCA-DWT图像融合【含Matlab源码 2199期】

    一.小波变换彩色图像融合简介 1 基于小波的图像融合 1.1 小波的分解和重构 小波变换是一种能够用来检测信号局部特征的数学工具.当然也可以将二维信号分解成不同分辨率的子带信号.由于图像为二维信号, ...

  4. 【图像融合】基于matlab低频融合策略小波图像融合【含Matlab源码 2319期】

    ⛄一.小波变换彩色图像融合简介 1 基于小波的图像融合 1.1 小波的分解和重构 小波变换是一种能够用来检测信号局部特征的数学工具.当然也可以将二维信号分解成不同分辨率的子带信号.由于图像为二维信号, ...

  5. 第 11 章 基于小波技术进行图像融合--MATLAB人工智能深度学习模块

    matlab实现基于小波技术进行图像融合–人工智能深度学习模块 该案例相对简单.实现程序 % MAINFORM MATLAB code for MainForm.fig % MAINFORM, by ...

  6. bp神经网络预测未来五年数据_基于小波神经网络的数据中心KPI预测

    随着软件和微服务的发展,智能运维越来越受到人们的重视.在大量的运维数据里,最不可忽视的就是各种关键性能指标数据(Key Performance Indicators,KPI),它们在数学上都可以被表达 ...

  7. 基于MATLAB的小波收缩法信号去噪

    信号在采集.传输和获取的过程中难免会受到各种噪声的干扰,这些噪声也极大地影响着人们从信号中获取有用的信息,因此对信号去噪的研究显得十分重要.小波去噪是近年来信号与信息处理领域的热门技术,利用小波算法对 ...

  8. 【转】理解小波消失矩

    原文地址:https://blog.csdn.net/xiaoyanwin/article/details/15657197?depth_1-utm_source=distribute.pc_rele ...

  9. matlab傅里叶变换去噪代码,小波的分析在心电信号去噪中应用(内附Matlab去噪源代码).ppt...

    求职应注意的礼仪 求职时最礼貌的修饰是淡妆 面试时最关键的神情是郑重 无论站还是坐,不能摇动和抖动 对话时目光不能游弋不定 要控制小动作 不要为掩饰紧张情绪而散淡 最优雅的礼仪修养是体现自然 以一种修 ...

最新文章

  1. boost:进程管理
  2. The following packages will be SUPERCEDED by a higher-priority channel
  3. pytorch DataLoader
  4. 成熟期滞后状态的云计算:应重视云存储及安全策略
  5. MySQL创建数据库与创建用户以及授权
  6. linux基础 linhaifeng,Linux 基础命令(一)
  7. adsense 注册_adsense在注册时的注意事项
  8. 有可能导致HttpQueryInfo 执行时出现12150 错误的一个原因
  9. 数据结构思维导图汇总
  10. 只有低价才是中国智能硬件的出路吗?
  11. 手把手教你使用《ProxyMan》抓取App接口
  12. pdf怎么添加水印?
  13. Boost.Asio Library
  14. 简单好听的id_简单好听的微信id
  15. Quality Assurance (质量保证)
  16. 分享120个HTML公司企业模板,总有一款适合您
  17. Smmu硬件寄存器—V2
  18. WINCE6.0去掉桌面快捷方式
  19. python 将 csv转excel (.xls和.xlsx)的几种方式
  20. 无线临ftp服务器1.3,Cerberus FTP Server Enterprise(FTP服务器管理工具)V11.3.1.1 最新版

热门文章

  1. MySQL中,21个写SQL的好习惯
  2. 如何去写一手好 SQL?
  3. 微信小程序Java登录流程(ssm实现具体功能和问题解决方案)
  4. xml教程之java解析xml文档
  5. AlertDialog创建6种对话框的用法
  6. 【Spring注解系列05】@Import注入原理
  7. 华为手机怎么隐藏按键图标_华为手机8个隐藏功能,快来看看有没有你不知道的...
  8. 计算机网络(二)计算机网络 体系结构和OSI参考模型 | 思维导图
  9. 【转】 ubuntu adduser 命令学习
  10. linux 重定向 2gt;gt;,编写我自己的linux shell I / O重定向’gt;’函数