基于MATLAB小波变换在图像处理中算法的实现研究
2019-12-25
(佳木斯大学 黑龙江 佳木斯 154007)
时间—频率分析在众多领域中均有所应用,为了追求更加深入的信号分析,除了要求信号稳定以外,还需要确定信号产生源头[1]。以往采用傅里叶变换方法,分隔时间窗,从而获取特定片断信号[2]。由于该算法只适用于单一频率,不适合应用于复杂环境的信号提取,而小波分析刚好弥补了这一不足,因而成为了重要信号处理工具。在图像处理中,借助MATLAB软件进行编程,实现图像的特定要求处理。
一、小波包分析及算法基础
小波包分解算法,是重构算法的逆运算,将结果作为已知条件,经过分解得到结果。
在实际应用中,将小波算法作为图像处理工具,经过一系列的拆分、重构处理,形成新的图像结构,或者将某尺寸下的图像进行压缩处理,获取压缩图片。这些处理均被称之为小波变换处理[3]。
二、基于MATLAB的小波分析流程
通常情况下,选取MATLAB软件作为小波转换算法编写开发平台,依据图像处理需求,构建小波函数,并确定函数的维度和类型,从工具栏中选取所需工具,对图形加以处理,通过论证分析,验证图像信号处理方案的可靠性[4]。以下为基于MATLAB的小波分析具体流程:
第一步:分析图像处理需求,选取小波基数,并构建小波函数;
第二步:以图像处理方式、结构等要求为依据,拟定小波变换处理方案,确定变换维度和类型;
第三步:找到软件工具栏,选择变换工具,完成小波变换处理,生成变换后的图形;
第四步:对生成的图像结果进行论证分析,判断该变换方案是否满足处理需求,如果不满足处理需求,则重新构建信号处理函数,返回第一步。如果满足需求,则输出图像处理结果,结束变换操作[5]。
三、小波变换在图像处理中的算法实现
本文以图片压缩算法、图像融合算法为例,探究小波变换在图像处理中实现方案,通过观察算法运行结果,论证算法设计方案可靠性。
(一)图像压缩算法
图像压缩处理是利用小波函数,去除图像关联信息,重新组合得到压缩图片。以往对于图像压缩算法的研究,以小波分解算法为主要处理工具,去除部分信息后,采取组合处理生成处理结果,通过观察图片处理效果可知,该处理方法无法确切地描述局部化信息,导致图片整体效果模糊。为了弥补该处理方案的不足,本文提出小波包算法,利用小波树分解图像信息,按照信息论准则,依据图片处理需求,分析图片局部信息,去除图片关联性信息后,将局部信息重新组建到一起,达到提高信息量目的,使得图片主体含义不变。这种处理方案可以表现图片的真实效果,满足图片压缩处理需求。
按照上述图片处理方案,将小波包分析融入到图片处理中,依据性能参数进行对比分析,编写以下程序:
第一步:加载信号源,生成图片。
Load exam
第二步:获得信号阈值、映射表长度、压缩信号等信息。
Len=size(map,1)//信号映射表长度
[huo,loob,patr,durl]=ddencmp(‘cmp’,’wp’,X)//信号阈值
此部分信号阈值由huo,loob,patr,durl4项指标构成,生成结果如下:
Huo=3.0
Loob=1
Patr=h
Durl=threshold
第三步:调用wpdencmp()函数,对当前图片采取压缩处理。通过控制图片长度,以树形信息分布情况,按照一定比例进行压缩,确定图片尺寸大小。
[xtmd,treed,perf(),perf10]=wpdencmp(X,patr,2,’sym2’,durl,huo*1.5,loob*0.5)
第四步:色彩的重新赋予。采用恢复映射表,对局部图像色彩进行填充。此处应用到局部信息采集与剔除处理结果,将主要信息保留下来,赋予到压缩后的图像中,使其能够形成含义保持不变的图像。
Colormap(pink(len))
以编号为120的画面分割板块为例,采用全局阈值化压缩方法,来处理图像。
Subplot(120);image(wcodemat(xtmd,len))
将整个图片能量拆分为多个模块,调整图片能量结构,使得画面更加清晰。
Xlabel([num3str(perf10),’%@@@’,num3str(perf0),’%@@@’])
第五步:生成压缩图片。
按照以上步骤开展图像处理实验,实验结果如图1所示。
图1 图片压缩处理结果
通过对比图1左侧图像和右侧图像,图形经过压缩处理后,放大到同样比例,观察图像结构及色彩变化情况可知,经过压缩处理后的图像能量成分基本没有降低,测得数值高达99.7346%,且零系数成本也超过了85%,满足图像压缩处理要求。从视觉角度来分析,经过压缩处理后的图像,图像轮廓保持不变,色彩保持了原有基本色调,去除了周围暗影,突出了中间图像结构和色彩特点。因此,本文提出的图像压缩算法符合图像压缩处理要求。
(二)图像融合算法
图像融合处理是将配准源图像分解为多个小波系数结构后,按照融合决策规则,对图像进行融合处理,生成融合图像[6]。具体算法如下:
第一步:加载图像。
Map2=map
第二步:显示图像外部轮廓,忽略细节。
For j=1:230
For i=1:230
If(X2(j,i)>98)
X2(j,i)=1.3*X2(j,i)
Else
X2(j,i)=0.6*X2(j,i)
End
End
End
第三步:小波二层分解。
[C2,Q2]=wavedec2(X2,2,’sym2’)
第四步:画面重构。
Xx1=wavedec2(C,Q1,’sym2’)
第五步:显示图像。
Subplot(210)
按照以上算法,对图像进行融合处理,得到如图2所示的图像融合结果。
图2图像融合结果
通过观察图2中的融合结果可知,本算法可以使得融合后的图像仍然保留原有图像轮廓,且实现了整体与局部的有效统一。
总结
本文围绕图像处理问题展开研究,选取MATLAB作为图像处理软件开发平台,以小波变换作为研究工具,提出图像处理方案研究。本次研究以图片压缩算法、图像融合算法为例,拟定小波变换算法在图像处理中的程序。测试结果表明,本文拟定的算法,可以在不破坏图片本身画面效果基础上压缩图片,支持不同图片的融合处理,能够清晰地显示源图像轮廓。