增强算法(通用9篇)
增强算法 篇1
0 引言
红外热成像仪是一种可探测目标的所发射的红外辐射, 并通过光电转换、电信号处理等手段, 将目标物体的温度分布图像转换成视频图像的设备。由于红外热成像仪在黑夜中仍可以正常工作故此在军事领域中得到了大量的应用, 通过该设备的使用可以实施夜间行动和作战, 大幅度提高武器系统的作战能力;在民用领域, 红外热成像系统可以进行无损检测等, 随着近年来的非制冷焦平面的研究和推广, 红外热成像系统利用非制冷焦平面作为核心部件, 使得整个系统的成本大大降低。
由于大气对电磁波散射和吸收等因素的影响, 使一部分波段的太阳辐射在大气层中的透过率很小或根本无法通过。电磁波辐射在大气传输中透过率较高的波段称为大气窗口。在8.0μm~14.0μm这个波段, 电磁波辐射的透过率约为80%。利用红外热成像仪所接收的大气向下的红外辐射值信息, 形成不同的云图。
1 系统组成
光学测量单元的核心部件是非制冷焦平面阵列, 用于感应8.0μm~14.0μm波段的大气向下红外辐射。非制冷焦平面阵列采用FLIR公司的PHOTON320, 该机芯采用氧化钒探测器材料, 焦平面规格是320×240高灵敏度 (<35 mK@f 1.0) , 较大的温度范围 (-40℃到+80℃) 保证了可以适应大多数气候条件, 较快的开机时间, 非热电制冷 (TEC) , 两倍焦距, 和38微米的像元尺寸。物镜采用100mm红外长焦镜头。数据输出频率为9Hz。由于天空中云的形状在短时间内不会发生变化, 故此9Hz的频率完全满足红外云图的观测要求。
数据采集终端通过TCP/IP协议将数据发送至PC机, 数据采集终端由PHOTON320+FPGA+S3C2440组成。FPGA负责采集PHOTON320的LVDS信号, 并将数据传输至S3C2440, 通过TCP/IP传输至PC机的图像已经经过了非均匀校正的处理。
2 图像增强算法
随着天气的不同, 云层的高度以及形状都有不同, 故此在不同的天气下云图的形状不完全一样, 需要对不同的云图进行图像增强, 以改善图像的光照条件, 锐化图像的细节。一般的红外图像中, 都以天空或者云层作为物体形状的参考物, 本文所研究的为云的形状, 所采用的物镜为定焦的镜头, 由于云层的高度以及天气等综合因素的影响使得云图的清晰度各不相同, 因此在做图像增强之前, 先对图形进行预处理, 从中筛选出需要增强的图像。
2.1 Weber定律
Weber定律[1]是由Weber与1834年提出的表明心理量与物理量之间关系的定律。在此方面的应用即人眼感觉出来图像的差异∆II阈=限K跟 (原1图) 的背景色之比是一个常数。用公式表示即为
对红外图像的预处理采用公式1来进行, 满足上式的图片则表示该图片中云形与天空的对比显著, 无需进行图像增强。下图1.1, 1.2, 1.3为三个红外图像。
通过式1的处理。图1满足该式的条件, 图2与图3不满足该式的条件。故此图1不需要进行增强处理, 图2与图3需要进行相应的增强处理。并且直观判断也可以看出图1相比图2和图3来说, 云和天空背景分的较为清晰。而图2和图3则明显看出来云与天空背景混在一起, 无法直接分辨出云。
2.2 Retinex算法
Retinex算法是由Land等人提出的, 它的构成是retina (视网膜) +cortex (皮层) , 该理论作为一种颜色恒常知觉的理论, 从最初的单尺度Retinex算法逐步形成了多尺度以及多尺度加权平均等各种算法。
相对于单尺度的Retinex算法来说, 用较小的尺度来进行图像增强, 则突出了图像的细节, 用较大的尺度进行图像增强, 则突出了图像的色调。将两者结合起来进行增强, 形成了多尺度的Retinex算法, 通过该算法即增强了图像的细节, 又突出了图像的色调。
传统的Retinex算法采用高斯函数作为图像滤波的算法, 而利用高斯函数作为滤波器对图像进行滤波之后, 图像的边缘会比较模糊, 这样在边缘的增强效果会比较差, 导致整体的输出效果下降。故此滤波算法改为双边滤波, 双边滤波相比高斯滤波在边缘处的信息保持的较为完整, 所以本文采用双边滤波的Retinex图像增强算法。本文的算法流程图见图4。
3 实验结果与讨论
本文所用的实验参数为:卷积窗口大小为9x9;σd=10;σr=0.1。
图5的原始图像为图2, 图6的原始图像为图3。图5及图6给出了红外图像的双边滤波Retinex图像增强算法与维纳滤波以及普通Retinex算法之间的效果对比。图6的普通retinex增强算法可以看出来经过普通retinex算法之后图像的细节和边缘发生了较大的变化与原图的差异过大, 无法正常使用。从图5和图6可以看出, 经过维纳滤波之后的图像与原图基本没有太大的差异, 只是细节部分有了部分改善。从实际的图像来看, 经过基于双边滤波的Retinex算法得到的效果较好, 由于该算法参数较为固定, 相对自适应滤波的Retinex方法 (RBAF) 来说, 图像增强效果不是最好的, 但是由于Retinex算法计算量较大, 采用自适应的方式寻找对于不同图像的合适的参数所花费的时间较长, 不利于算法的实时性的要求。故此在本文中选定固定的参数进行图像增强运算。从实际的效果来看, 对于两类不同的图像, 增强效果都较为明显, 保持图像细节的同时, 在图像的边缘处提高了图像的对比效果。
4 结论
本文利用一种双边滤波的Retinex图像增强方法, 对需要增强的两幅红外图像进行了增强, 通过实验结果的对比可以看出利用双边滤波的Retinex算法很好的对红外图像的细节进行了增强, 并且也提高了边缘的对比度。在使用增强算法之前, 利用weber定律对图像进行预处理, 满足weber定律的图像不进行增强处理。提高了算法的运行速度。
参考文献
[1]Lim JS.Two-dimensional signal and image processing[M].Englewood Cliffs, NJ:Prentice-Hall, 1990.
[2]纪则轩, 陈强, 孙权森, 夏德深.基于双边滤波的单尺度Retinex图像增强算法[J].微电子学与计算机, 2009 (10) .
[3]胡韦伟, 汪荣贵, 方帅, 胡琼.基于双边滤波的Retinex图像增强算法[J].工程图学学报, 2010 (2) .
[4]雷美荣, 杨进华, 张金泉.基于Retinex理论的红外图像的边缘增强算法[J].长春理工大学学报 (自然科学版) , 2008 (6) .
增强算法 篇2
摘 要:针对传统的小波阈值去噪算法中的阈值函数不足,提出一种优于非负死区阈值函数的改进的阈值函数.改进阈值函数不仅具有良好的连续性、可导性,并且克服了非负死区阈值函数没有考虑小波变换模值的衰减符合指数规律这一特点.另外在阈值的选取中,考虑了带噪语音信号的不同特性,采用谱平坦度函数修正阈值.仿真实验表明,与传统的非负死区阈值函数去噪算法相比,改进的阈值函数能更有效地消除背景噪声,在提高输出信噪比的同时,更好地保持语音质量和清晰度.
关键词:语音增强;小波变换;阈值去噪
中图分类号:TN912.3 文献标识码:A
语音增强是将尽可能纯净的原始语音从带噪语音信号中提取出来.其主要目的是:消除背景噪音、改进语音质量、提高语音可懂度、使听者乐于接受并且不会感觉到疲劳.目前,在平稳的噪声环境下语音增强效果较好,但在非平稳环境下,尤其在低信噪比情况下对语音增强算法的研究仍是语音信号处理的一个重要方向\[1-3\].
小波变换属于一种信号的时间尺度变换分析方法,可以同时很好地表征出信号在时域和频域的局部特性.小波变换具有多分辨率分析的特点,在信号的低频部分具有较低的时间分辨率和较高的频率分辨率,在信号的高频部分具有较低的频率分辨率和较高的时间分辨率,是一种适应于非平稳环境的信号处理方法\[4\].文献[5]首次提出了基于软硬阈值函数的小波语音增强算法,随后Breiman在Donoho的基础上提出了一种非负死区阈值函数去噪算法\[6\],其语音增强效果要优于传统的软硬阈值函数去噪算法.但通过分析可知:非负死区阈值函数并没有考虑语音信号的小波变换模值的衰减是符合指数规律的这一特点,因此其去噪效果有待进一步提高\[7\].本文对软硬阈值以及非负死区阈值函数进行分析,并在此基础上提出一种改进的阈值函数的小波语音增强算法.改进阈值函数克服了非负死区阈值函数的不足,仿真实验表明,改进阈值函数去噪效果要明显优于非负死区阈值函数,在抑制噪声的同时很好地保持了语音的可懂度.
1 小波去噪原理
信号在某点处出现间断或者其某阶导数不连续的性质称为信号的奇异性,通常采用信号的Lipschitz指数来表征信号的奇异性.文献[8]建立了信号的Lipschitz指数与小波系数的局部模极大值之间的关系.
对信号f(t)来说,假设存在正数T使得不等式(1)成立:
|f(t0+τ)-fn(t0+τ)|≤T|τ|δ ,
n<δ≤n+1(1)
则称δ为信号f(t)在t0处的Lipschitz指数.其中n为正整数,fn(t)为信号f(t0)的n次多项式,τ为一个充分小的量.
设信号f(t)的小波变换系数的模为|Wf(a,b)|.假设存在正数b0∈(b0-τ,b0+τ)使得|Wf(a,b)|≤|Wf(a,b0)|成立.则称b0为f(t)的小波变换的局部极大值点,|Wf(a,b0)|为小波变换的模极大值.在尺度a=2j时,f(t)的Lipschitz指数δ与其小波模极大值W2jf(2j,b0)满足下式:
log 2|W2jf(2j,b0)|≤log 2A+δj. (2)
其中A是与基小波相关的常量.由式(2)可得,当f(t)的Lipschitz指数δ>0时,则信号f(t)的模极大值W2jf(2j,b0)将会随着分解尺度j的增大而增加;反之,当f(t)的Lipschitz指数δ<0时,信号f(t)的模极大值W2jf(2j,b0)将会随着分解尺度j的增大而减少.
由以上信号的分析特性可知,纯净语音信号的Lipschitz指数δ>0,其极大值是随分解尺度j的增大而增加;而噪声信号的Lipschitz指数δ<0,其极大值是随分解尺度j的增大而减少.根据语音信号和噪声信号所具有的这个特性,可以在运用小波系数进行处理时,在不同的分解尺度上设置一个合适的门限阈值,将小于该阈值的极大模值点认为是噪声的小波变换引起的,因而将其置零.大于该阈值的极大模值点则认为是信号小波变换引起的予以保留.然后再通过小波逆变换重构信号,达到增强去噪的目的.
2 小波阈值去噪算法
由小波变换的线性特性可知,带噪语音信号的小波变换系数等于噪声信号的小波变换系数和纯净语音信号的小波变换系数之和.按照这一性质,利用小波变换进行阈值去噪的基本思路是:首先选择合适的基小波函数和分解层数对带噪语音信号进行多尺度小波分解;然后分别对各尺度的高频小波系数采用合适的门限阈值及阈值函数进行处理:最大限度去除噪声信号的小波系数,保留原始纯净信号的小波系数;最后对保留的各层系数进行小波逆变换,重构增强语音信号.图1为小波阈值去噪算法的基本原理框图.
1 小波去噪原理
信号在某点处出现间断或者其某阶导数不连续的性质称为信号的奇异性,通常采用信号的Lipschitz指数来表征信号的奇异性.文献[8]建立了信号的Lipschitz指数与小波系数的局部模极大值之间的关系.
对信号f(t)来说,假设存在正数T使得不等式(1)成立:
|f(t0+τ)-fn(t0+τ)|≤T|τ|δ ,
n<δ≤n+1(1)
则称δ为信号f(t)在t0处的Lipschitz指数.其中n为正整数,fn(t)为信号f(t0)的n次多项式,τ为一个充分小的量.
设信号f(t)的小波变换系数的模为|Wf(a,b)|.假设存在正数b0∈(b0-τ,b0+τ)使得|Wf(a,b)|≤|Wf(a,b0)|成立.则称b0为f(t)的小波变换的局部极大值点,|Wf(a,b0)|为小波变换的模极大值.在尺度a=2j时,f(t)的Lipschitz指数δ与其小波模极大值W2jf(2j,b0)满足下式:
log 2|W2jf(2j,b0)|≤log 2A+δj. (2)
其中A是与基小波相关的常量.由式(2)可得,当f(t)的Lipschitz指数δ>0时,则信号f(t)的模极大值W2jf(2j,b0)将会随着分解尺度j的增大而增加;反之,当f(t)的Lipschitz指数δ<0时,信号f(t)的模极大值W2jf(2j,b0)将会随着分解尺度j的增大而减少.
由以上信号的分析特性可知,纯净语音信号的Lipschitz指数δ>0,其极大值是随分解尺度j的增大而增加;而噪声信号的Lipschitz指数δ<0,其极大值是随分解尺度j的增大而减少.根据语音信号和噪声信号所具有的这个特性,可以在运用小波系数进行处理时,在不同的分解尺度上设置一个合适的门限阈值,将小于该阈值的极大模值点认为是噪声的小波变换引起的,因而将其置零.大于该阈值的极大模值点则认为是信号小波变换引起的予以保留.然后再通过小波逆变换重构信号,达到增强去噪的目的.
2 小波阈值去噪算法
由小波变换的线性特性可知,带噪语音信号的小波变换系数等于噪声信号的小波变换系数和纯净语音信号的小波变换系数之和.按照这一性质,利用小波变换进行阈值去噪的基本思路是:首先选择合适的基小波函数和分解层数对带噪语音信号进行多尺度小波分解;然后分别对各尺度的高频小波系数采用合适的门限阈值及阈值函数进行处理:最大限度去除噪声信号的小波系数,保留原始纯净信号的小波系数;最后对保留的各层系数进行小波逆变换,重构增强语音信号.图1为小波阈值去噪算法的基本原理框图.
2.1 改进阈值函数
根据小波阈值去噪的原理可知,语音信号在经过小波分解后,通过阈值函数处理带噪语音小波系数可以去除噪声.传统的小波系数处理算法有软硬阈值函数和一些改进的阈值函数.
硬阈值函数
j,k=wj,k,|wj,k|≥λ;
0,|wj,k|<λ.(3)
硬阈值函数处理方法能够更多地保留原始语音信号的尖峰特征,但硬阈值函数在阈值±λ处是间断不连续的,从而在重构增强语音信号时会出现一定的振荡现象.
软阈值函数
j,k=sgn (wj,k)(|wj,k|-λ),|wj,k|≥λ;
0,|wj,k|<λ. (4)
软阈值函数处理方法在阈值±λ处连续,对重构信号的小波系数具有更好的平滑作用,进而取得较好的增强效果.但j,k和wj,k之间由于存在恒定误差,会丢失原始语音信号的突变信息,使得重构信号的信噪比较低,均方误差较大.
非负死区阈值函数
j,k=wj,k-λ2wj,k,|wj,k|≥λ;
0,|wj,k|<λ. (5)
非负死区阈值函数考虑到了随着有用信号的小波系数的增大,对噪声信号的削减力度也有所降低的性质,保证了函数在阈值±λ处的连续性,在软硬阈值门限值之间取得了一个很好的折衷.仿真实验证明非负死区阈值函数的去噪效果的确优于软硬阈值函数去噪.但其并没有考虑噪声小波变换模值的衰减是符合指数规律的这个特点,并且在|wj,k|<λ的区间,非负死区阈值函数也只是和软硬阈值一样做置零处理,这样必然会损失部分清音信号信息,造成语音失真\[8\].
考虑到以上因素,本文在非负死区阈值函数的基础上结合指数函数设计了一种改进的更为合理有效的阈值函数.改进阈值函数的定义为:
j,k=
sgn (wj,k)(|wj,k|-λ22|wj,k|e2(λ-|wj,k|)),|wj,k|≥λ;
sgn (wj,k)(λ(e8|wj,k|-e8p)2(e8λ-e8p)),|wj,k|<λ;
p∈(0,λ). (6)
从图2可以看出,所设计的改进阈值函数克服了硬阈值函数在±λ处的不连续性以及软阈值函数存在恒定误差的缺点.在|wj,k|=λ处,改进阈值函数不像硬阈值函数那样存在突变性,从而在重构增强语音信号时不会产生振荡现象;在|wj,k|λ阶段,改进阈值函数和硬阈值更加接近,避免了j,k和wj,k之间出现恒定差值,因此也就不会过多丢失有用语音信号的突变信息;并且相对于非负死区阈值函数,改进阈值函数符合小波变换模值按指数衰减的规律,其去噪效果更佳.
2.2 门限阈值选取
在小波阈值去噪处理算法中,门限阈值λ是一个非常重要的参数,阈值选取的大小将直接影响小波去噪的性能.λ选取过大,则小波去噪中剔除了过多的有用信号,会造成信号的失真;λ选取太小,又会在增强语音中残留有较多的噪声信号,降低算法的去噪效果.
Donoho设计的固定阈值λ=σ2log N,式中σ为小波系数wj,k的方差,N为观测语音的长度.因为对不同的分解尺度j上都采用了相同的阈值进行去噪处理,故其增强效果不理想.文献\[7\]依据随着尺度的增加,噪声的模极大值减小,其阈值也应随着尺度的增加而减小的特点,将固定阈值λ修改为λ=σ2ln N/2j-1ln (j+1).该阈值设计方法可以保证较大程度地保留有用语音信号的信息,不过这种阈值设计并不是适应所有的噪声环境,在非平稳的噪声环境下,其去噪效果有待进一步提高.为了提高在非平稳噪声环境下的小波去噪性能,我们根据带噪语音帧频谱的平坦度,来判断带噪语音信号是噪声特性还是纯净语音特性,然后针对不同的特性采用不同的自适应阈值对带噪语音信号进行去噪处理.其中,谱平坦度γ定义为:γ=10log 10(μg/μa),其中μg=nf1f2…fn为带噪语音信号的小波功率谱密度的几何平均值,μa=1n∑ni=1fi为带噪语音信号小波功率谱密度算术平均值.自适应阈值采用一个谱平坦度函数g(γ)=2/ln (0.05γ)来修正文献\[9\]改进的阈值λ,即自适应阈值函数为:
λ=σ2ln N/2j-1ln (j+1)g(γ) (7)
自适应阈值既考虑了随着尺度j的增大,λ的值逐渐减小,使其与噪声在小波变换各尺度上的传播特性相一致的特性,也考虑了带噪语音的噪声和语音特性,使对门限阈值估计更准确,其去噪效果更佳.
3 实验仿真
实验仿真所采用的纯净语音信号是由Voice Reader软件合成的采样率为8 kHz,采样位数为16 bit的“我爱北京天安门”语音信号.噪声信号则采用在体育馆内录制的采样率为8 kHz,采样位数为16 bit的hubbub噪声.实验在信噪比(SNR=0 dB)下,对添加hubbub噪声的纯净语音分别利用非负死区阈值函数和改进阈值函数进行小波去噪处理.原始语音及添加hubbub噪声的带噪语音如图3所示,采用两种方法的实验仿真结果如图4和图5所示.
由实验结果可以看出,与非负死区阈值去噪法相比,在低信噪比的情况下,采用本文改进阈值函数的方法,有效地抑制了背景噪声,减少了语音的失真度.此外,由于引入了带噪语音帧频谱的平坦度来计算阈值λ,改进阈值去噪算法能有效地消除了因音乐噪声产生的语音失真,很好地保持了语音的自然度和可懂度,主观试听效果要明显优于传统的软硬阈值和非负死区阈值去噪法.
为了进一步评价增强语音的质量,我们采用语音信号的分段信噪比和分段失真来评价增强语音的质量.分段信噪比是以帧为单位先计算信噪比,然后在整个语音段求其平均值作为最终的输出信噪比.其计算公式为\[10\]:
从表中可以看出,无论是在低信噪比还是高信噪比情况下,改进阈值去噪算法的输出信噪比都要大于非负死区阈值去噪算法,而其增强语音失真度都要远远小于非负死区阈值去噪法.说明改进阈值去噪算法在保持增强语音较高的输出信噪比的情况下没有过多地损伤语音的原有信息,更好地保持了语音的可懂度.
4 结 论
针对传统的基于软硬阈值的小波去噪算法的不足,在非负死区阈值函数去噪算法的基础上提出了一种改进阈值函数的小波阈值去噪算法.改进的阈值函数克服了硬阈值存在突变、软阈值存在恒定差值的缺点,另外改进阈值函数考虑了小波变换模值按指数衰减的规律,其增强语音的小波系数获取更接近于原始纯净语音.在阈值λ的选取中,依据带噪语音信号的谱平坦度来加权阈值能获得随语音实时变换的阈值λ.仿真结果表明,改进算法在非平稳的低信噪比的情况下能有效消除背景噪声,减少残留音乐噪声和听觉失真,提高了语音的感知质量和清晰度.
参考文献
[1] KRISHNAMOORTHY P, PRASANNA S R M. Enhancement of noisy speech by temporal and spectral processing \[J\]. Speech Communication,2011, 53(2): 154-174.
\[2\] 赵欢,王纲金,赵丽霞.一种新的对数能量谱熵语音端点检测方法\[J\]. 湖南大学学报:自然科学版, 2010,37(7):72-77.
ZHAO Huan, WANG Gangjin, ZHAO Lixia, An inproved minimum search method for noise estimation\[J\].Journal of Hunan University:Natural Sciences, 2010,37(7):72-77.(In Chinese)
\[3\] 覃爱娜,戴亮,桂卫华. 基于听觉掩蔽效应和最优平滑的语音增强算法\[J\].计算机工程,2013,39(8):27-30.
QIN Aina, DAI Liang, GUI Weihua. Speech enhancement algorithm based on auditory masking effect and optimal smoothing\[J\]. Computer Engineering,2013,39(8):27-30.(In Chinese)
\[4\] 胡昌华,李国华,刘涛,等.基于matlab6.x的系统分析与设计—小波分析\[M\].西安:西安电子科技大学出版社,2004: 5-9.
HU Changhua, LI Guohua, LIU Tao,et al. Analysis and design of the system based on matlab6.x-wavelet analysis\[M\]. Xi'an: Publisher of Xidian University,2004: 5-9.(In Chinese)
\[5\] LEE B,LEE K,ANN S.An EMbase approach for parameter enhancement with all application to speech signals\[J\].Signal Processing,1995,46:1-14.
\[6\] ZHANG Weiqiang,SONG Guoxiang.A translationinvariant wavelet denoising method based on a new thresholding function\[C\]//International Conference on Machine Learning and Cybemetics.2003,2341-2345.
\[7\] BARRI A, DOOMS A, SCHELKENS P. The near shiftinvariance of the dualtree complex wavelet transform tevisited \[J\]. Journal of Mathematical Analysis and Applications,2012,389(2): 1303-1314.
\[8\] 戴亮. 非平稳噪声环境下的语音增强算法研究\[D\]. 长沙:中南大学,2012:32-34.
DAI Liang. Research on speech enhancement algorithms in nonstationary noise environment\[D\]. Changsha:Central South University,2012:32-34.(In Chinese)
\[9\] 董胡,钱盛友.基于小波变换的语音增强方法研究\[J\].计算机工程与应用,2007,43(31) :58-60.
DONG Hu, QIAN Shengyou. Research on speech enhancement based on wavelet transform\[J\].Computer Engineering and Applications,2007,43(31):58-60.(In Chinese)
\[10\]QUACKENBUSH S R, BARNWELL T P,CLEMENTS M A.Objective measures of speech quaintly\[M\].Englewood Cliffs,NJ:Prentice Hall,1988:88-96.
\[11\]卜凡亮, 王为民, 戴启军,等. 基于噪声被掩蔽概率的优化语音增强方法\[J\].电子与信息学报, 2005,27(5):753-757.
数字图像增强算法分析 篇3
关键词:图像增强,直方图均衡化,MATLAB,对比度增强
1 研究目的和意义
图像增强的目的是改善图像的视觉效果, 针对给定图像的应用场合, 有目的地强调图像的整体或局部特性, 扩大图像中不同物体特征之间的差别, 满足某些特殊分析的需要。其方法是通过一定手段对原图像附加一些信息或变换数据, 有选择地突出图像中感兴趣的特征或者抑制 (掩盖) 图像中某些不需要的特征, 使图像与视觉响应特性相匹配。在图像增强过程中, 不分析图像降质的原因, 处理后的图像不一定逼近原始图像。图像增强技术根据增强处理过程所在的空间不同, 分为基于空域的算法和基于频域的算法两大类。基于空域的算法处理时直接对图像灰度级做运算, 基于频域的算法是在图像的某种变换域内对图像的变换系数值进行某种修正, 是一种间接增强算法[1]。
2 直方图与直方图均衡化
2.1 直方图
1) 直方图又称质量分布图, 是一种几何形图表, 它是根据从生产过程中收集来的质量数据分布情况, 画成以组距为底边、以频数为高度的一系列连接起来的直方型矩形图。
2) 图像的直方图。 以灰度图为例, 假设图中一共只有0、1、2、3、4、5、6、7 8种灰度, 0代表黑色, 7代表白色, 其它数字代表0~7之间不同深浅的灰度, 见图1。
统计的结果如下, 横轴标示灰度级别 (0~7) , 纵轴标示每种灰度的数量, 见图2。
Photoshop (PS) 中的显示, 见图3。
2.2 直方图均衡化
2.2.1 直方图均衡化的定义
直方图均衡化方法把原图像的直方图通过灰度变换函数修正为灰度均匀分布的直方图, 然后按均衡直方图修正原图像。当图像的直方图为一均匀分布时, 图像包含的信息量最大, 图像看起来就显得清晰。该方法以累计分布函数为基础, 其变换函数取决于图像灰度直方图的累积分布函数。它对整幅图像进行同一个变换, 也称为全局直方图均衡化[5,6,7]。
2.2.2 对现有直方图均衡化算法进行改进
第一步 根据需要在灰度区间[M , N]上进行直方图粗均衡。 根据需要设定一个灰度区间[M , N], 对用 (1.1) 计算过后的tk进行整合变为t′k, 其中k为新的直方图的灰度数, 区间[M , N]和k需满足下式
主要是为了保证变换后灰度的次序不变, 在上述的前提下, 我们可以在区间[M , N]中根据k等分区间长度, 进行强制直方图的均衡。因此, 我们先要求的就是等分的长度h, 可用下式求得
然后就只需根据一定的映射关系改变t′i的灰度值, 进行新的直方图均衡化, 映射关系如下
经整理
具体的实现过程如下:
1) 给出原始图像的所有灰度级k=0, 1, 2, …, L-1;
2) 统计原始图像各灰度级的像素数nk;
3) 用p (tk) =nk/n计算原始图像的直方图;
4) 用 (4.11) 式计算原始图像的累积直方图;
5) 用 (4.12) 式进行取整计算;
6) 用t″k=M+k×int[ (N-M) / (k+1) ]进行均衡化;
7) 用p (tk) =nk/n计算新的直方图。
由于灰度的范围一般为0 ~255, 因此, 在本文的实验中取M=0, N=255, 所使用的数据来源于网络。在实际应用中, 可根据需要灵活的改变N和M的取值, 以求达到最佳效果。
第二步 通过一定得映射关系在尽可能保留原图像像素的基础上进行二次均衡, 以达到拓展使用的灰度空间。
减少转换过程中出现的像素个数较少的灰度被其周围的像素个数较多的灰度吞噬而造成信息丢失, 以及由此而产生的变换后图像所用灰度个数减少, 造成图像灰度层次感不强的现象, 是对传统算法的一个改进。通过分析式 (1) 可知:对于任意相邻两灰度i和i+1, 如果
采用的方法是建立一个满足下列要求的映射:假设原始图像中灰度i所具有的像素个数为ri, 映射后为r′i, 它们之间的关系为
对映射f的要求是其值域为正实数域。为了与原始图像保持一致, 该映射同时要求为单调递增。虽然每个ri都比以前小, 但Q′=
在传统算法中采用式 (1) 进行灰度转换, 其灰度转换规则不能充分利用灰度的低值部分, 如原始图像中的灰度为0, 极易被转换成非0灰度值, 且灰度为0的像素在原始图像中所占比重越大, 其转换后的值也就越大。因此将转换规则修正为
由式 (6) 所确定的灰度转换可以使转换后的灰度值分布于整个灰度空间, 这样可以将原始图像中的最大灰度值和最小灰度值分别映射成0灰度值和图像格式可以提供的最大灰度值n-1, 从而拓展了所使用的灰度空间。
第三步 首先, 用分频滤波器将图像分成低频和高频两个部分, 只对低频分量进行直方图均衡化, 然后, 将处理过的低频部分和高频部分进行合并, 再对合并后的信息进行中值滤波, 去除噪声, 得到最终增强的图像, 既保留了图像整体对比度和细节信息, 又去除了噪声放大的问题。
1) 将原始图像分频。
由于高斯低通滤波器在时域和频域上都具有比较好的平滑性能, 因此, 采用高斯低通滤波器对图像进行分频, 这样不会导致图像的细微结构发生极性反转。设原始图像为f (x, y) , 经过分频处理后, 图像f (x, y) 被分为两部分:低频部分fL (x, y) 和高频部分fH (x, y) 。低频部分fL (x, y) 含有原始图像的大部分灰度信息, 高频部分fH (x, y) 含有图像的少部分灰度信息。原始图像f (x, y) 与低频部分fL (x, y) 、高频部分fH (x, y) 间的关系可表示为
2) 将低频部分进行直方图均衡化。
对低频部分fL (x, y) 进行直方图均衡化 (HE) 处理。设均衡化之后的低频图像为f′L (x, y) , 则
此时, 低频图像f′L (x, y) 包含着的原始图像的大部分像素灰度级被均衡化分布, 动态范围得到提高, 大大改善了原始图像的对比度。高频部分fH (x, y) 含有原始图像的少部分灰度信息, 这少部分灰度信息包含着图像细节和图像噪声。
3) 将低频信息和高频信息合并。
将低频信息和高频信息进行合并, 设合并后的图像为g (x, y) , 则
由于
所以
合并后的图像g (x, y) 与原始图像相比, 既提高了整体图像的对比度, 又强化了图像细节, 但是含有高频部分的图像噪声。
4) 将合并后的图像进行中值滤波。
可对合并后的图像g (x, y) 进行中值滤波, 滤除图像中的噪声。中值滤波是一种非线性统计滤波器, 是抑制噪声的非线性处理方法。它是从一维信号中的滤波技术—中值滤波技术发展而来的。对于一维信号, 可以在图像画面中开一个一维的小窗口, 使其包含奇数个像素。按像素的灰度值从小到大排列起来, 然后用中间灰度值代替原排列的中间像素的灰度值。窗口然后从左到右移动, 直到边界。窗口下移一行, 再从左到右进行。
2.3 分析比较
2.3.1 仿真实验结果分析
图4和图5是为了验证本文所述的处理方法对低对比度图像的增强效果而专门制作的CAD图像和RGB彩色图像。通过对比图 (b) 和图 (c) 可以发现, 用本文所述的方法处理的图像, 层次感的增强效果明显好于用直方图均衡化方法处理的结果, 整体效果更是远比原始的直方图均衡化效果好的多[1,2,3,4,5,6,7,8]。
2.3.2 分析其优缺点
本文的均衡化算法在一定程度上改善了图像的整体效果, 而且图像噪声的到了很好的抑制。图像在层次感上明显好于原图像, 最大的有点就是在目视条件下图像的失真程度有所改善, 使原图像的灰度丢失率明显下降。就这个效果来说这个算法可以用来处理一些曝光不足的照片, 不过用这个处理照片的实用性还待考究, 因为他需要相当的专业素养。但同时也有很大的不足之处, 对灰度比较接近的图块之间的边界处的处理结果显示的不如原始直方图均衡化结果好。
3 结束语
传统的直方图均衡化算法是一种快速而有效的图像整体对比度增强算法, 但其缺点是容易造成图像细节信息丢失和图像噪声幅度增大。其实无论哪种图像增强手段都有他优点和缺点, 实际中我们完全可以尝试着探索一些这些方法的结合使用, 也许会得到意想不到的效果。在直方图均衡化算法的基础上, 本文所采取的处理方法可以有效防止图像细节信息丢失和图像噪声幅度增大。并经过实验证明, 本文所用的算法处理的图像, 整体视觉效果得到改善, 细节信息更为丰富, 从中可以提取出更有意义的图像特征。
参考文献
[1]朱秀昌, 刘峰, 胡栋.数字图像处理与图像通信[M].北京:北京邮电大学出版社, 2002.
[2] (英) Maria Petrou, (希) Panagiota Bosdogianni.赖剑煌, 冯国灿, 等.译.数字图像处理疑难解析 (Image Process-ing The Fundamentals) [M].北京:机械工业出版社, 2005.
[3]施晓红, 周佳.精通GUI图形界面编程[M].北京:北京大学出版社, 2003.
[4]李介谷, 施鹏飞, 刘重庆, 等.数字图像处理[M].上海:上海交通大学出版社, 1988
[5]阮秋琦.数字图象处理学[M].北京:电子工业出版社, 2001.
[6] (日) 谷口庆治.编.朱虹, 廖学成, 乐静, 等, 译.数字图像处理应用篇[M].北京:科学出版社, 2002.
[7]盛道清.基于多小波变换与图像融合的图像增强方法研究[J].武汉:武汉科技大学出版社, 2008.
增强算法 篇4
关键词:形态学融合滤波;农业图像;MSR算法;局部像素最大化原则
中图分类号:TP391.41 文献标志码:A 文章编号:1002—1302(2016)01—0394—02
农业图像增强的根本目的是突出图像中的感兴趣信息,弱化其余信息,尽可能提高图像判读、分析的针对性。农业图像受野外成像环境多样性的影响以及在传输、解码过程中会存在不同程度的噪声并且在此过程中图像对比度也有所降低。对于农业图像的预处理,近年来学者们着重在滤波、增强2个方面进行针对性的研究,但是该类成果要么是针对图像中的噪声进行滤波,要么着重于进行图像增强,因而倾向性较为明显。当处理对比度较低且含有噪声的农业图像时,该类算法的处理效果则不尽如人意。因此,要实现对农业图像的有效处理,将图像滤波和增强算法进行有机融合是比较理想的选择。根据这一思路,本研究將形态学滤波与多尺度Retinex(muti-scale retinex,MSR)增强算法有机结合,提出了1种改进型MSR增强算法,即首先提出了1种形态学融合滤波算法对图像进行噪声滤除,然后对滤波后的图像进行MSR增强。
1算法原理
1.1形态学融合滤波
形态学图像处理的基本思路是采用预先设计的不同形状(圆形、矩形、菱形等)、不同尺寸(结构元素半径)的结构元素通过不同的运算方法来对图像进行处理和分析。形态学运算方法最基本的是腐蚀和膨胀运算,令函数F(i,j)表示任意一幅图像,B(i,j)为结构元素,腐蚀和膨胀运算定义为:
膨胀运算能够将图像中处于结构元素范围内的信息进行合并,对于图像中的空洞或凹陷部分(如裂缝)能够进行适当填补,能够滤除图像中负噪声点(噪声点灰度值明显低于图像中其余像素点灰度值),但是对于图像中的正噪声(噪声点灰度值明显高于图像中其余像素点灰度值)则无能为力。腐蚀运算则能够有效去除图像中的正噪声点,对于图像中小于结构元素尺寸且亮度较大的区域能够进行削弱甚至消除。因此,腐蚀和膨胀运算互补性较强,将二者进行有机组合,形成了开启运算、闭合运算:
开启运算能够有效去除图像中呈孤立分布的正噪声点(如图像中孤立存在的斑点、毛刺),从整体上平滑图像,但如果图像中的负噪声点过于密集且彼此间的距离明显小于结构元素尺寸,开运算处理的结果只能是进一步放大图像中负噪声点的分布区域;如果图像中的正噪声点较多,对图像首先进行膨胀运算然后进行腐蚀运算(即闭运算)也难以有效去除该类噪声点。开动、闭合运算的性能是基于采用同一形状、同一尺寸的结构元素得出的,进一步提高噪声滤波性能,最为有效的思路是采用不同尺寸的结构元素。这是因为采用尺寸较大的结构元素能更为有效地去除噪声点,但是会模糊图像;而采用尺寸较小的结构元素,尽管噪声去除能力下降,但能很好地刻画图像中的边缘轮廓信息。基于上述分析,本研究采用不同尺寸的结构元素(图1)将开启、闭合运算有机结合,并采用图像融合的策略,提出了农业图像形态学融合滤波的思路,具体步骤如下。
(1)采用如图1-a所示的尺寸为1的菱形结构元素对含有噪声的农业图像(尺寸大小为M×N)首先进行开启运算,然后进行闭合运算,得到滤波图像1。
(2)采用如圖1-b所示的尺寸为2的菱形结构元素对含有噪声的农业图像首先进行闭合运算,然后进行开启运算,得到滤波图像2。
代码变形的增强LZMA算法 篇5
随着网络技术的迅速发展, 逐渐扩张的逆向工程技术使不法用户可以通过静态分析与动态跟踪来分析软件的核心算法和重要数据, 严重侵害了开发者的知识产权[1]。因此, 软件保护越来越为重要, 而代码变形是软件保护的一个重要手段[2]。压缩变形是代码变形的重要技术之一, 经普通代码变形技术作用后的程序体积会由于插入了大量的指令代码而远超过原始文件[3], 空间资源的浪费会对软件和系统造成严重影响, 所以对变形文件进行压缩变得尤为重要。
由于可执行文件, 即PE ( Portable Executable) 文件的特定格式[4], 以及代码变形的一些特殊要求, 如文件的可执行性[5]与保密性, 一般的数据压缩方法在代码变形中并不能完全适用。目前的代码变形压缩技术通常只对PE文件中的某一部分采用现有的开源数据压缩算法。例如游程编码 ( RLE) 、哈夫曼编码、Zlib、a PLib、LZMA等算法在移植应用过程中并没有对压缩算法进行修改, 虽然拥有较高的压缩效果, 但保密性低且易被破解, 达不到软件保护的目的[6,7,8,9]。本文分析了LZMA算法在代码变形中的应用方式, 针对其中的不足, 提出进一步的增强方法, 使其在不改变文件可执行性的前提下, 更安全、更高效地完成PE文件的压缩。
1 代码变形的压缩机制
代码变形技术是面向PE文件的一种代码混淆技术, 其中的文件压缩机制与一般的数据压缩机制不同, 在代码变形领域, 经过压缩的PE文件仍为可执行文件。若按照传统的数据压缩策略, 根据Windows操作系统及其装载、执行机制的复杂性, 不加区分地对PE文件中的所有数据进行压缩, 极有可能导致压缩后的文件无法正常执行[10]。这表明不能将PE文件作为一个整体进行压缩, 而需分块处理, 最后添加解压缩代码并修改文件头, 生成一个新的PE文件。根据PE文件结构[4]可知,
PE = { DOSheader, PEheader, Section table, Section, Other} , 其中Section = { . data, . text, . idata, . reloc, . tls, . edata, . bss, . rda-ta, . rsrc} 对PE文件各部分的压缩策略进行分析如下。
( 1) 可压缩数据
. data, . text, . idata, . reloc均为可压缩的Section。
( 2) 不可压缩数据
{ DOS header, PE header, Section table, Other} 均在系统加载文件时使用, 不可压缩。. tls块和线程局部存储有关。系统加载PE文件时若. tls块处于压缩状态, 系统无法正确初始化线程局部变量。. edata块存放引出数据与函数的列表, 以供其他模块引用。操作系统可能在不装载PE文件的情况下使用引出信息, 因此. tls块和. edata块均不可压缩。
. rdata块可用于多处, 包括存放TLS目录、调试目录、OLE程序的GUID、DEF文件的描述信息等, 由于系统加载PE文件时需用到TLS目录与调试信息, 因此对. rdata块也采取不压缩策略。
. bss块最初用于在进程空间中保留一块存放未初始化的静态与全局变量的地址, 但现在使用较少, 一般情况下, PE文件中并无. bss块的原始数据, . bss块表中的Pointer ToRaw Data字段总是0。对. bss块亦采取不压缩策略。
( 3) 特殊数据
在Section中最特殊的是. rsrc块, 它用于存放程序资源。通常资源信息只有在PE文件运行时才会被用到, 但有些特殊类型的资源, 在PE文件没有运行的情况下, 仍被系统读取和使用。此类资源包括Version information ( 版本信息) 、Icon ( 图标) 、Group Icon ( 组图标) 等。因此将资源块分为两部分, 对可压缩的部分进行压缩, 对不可压缩的部分则保持原状。
令. rsrc块中可压缩部分集合为Crsrc, PE文件中可压缩数据集合为C, 不可压缩数据集合为NC, 则:
2 基于增强算法的代码变形模型
根据代码变形的压缩机制分析及其领域的特殊要求, 可对LZMA算法做进一步的增强处理, 本文提出的一种基于增强LZ-MA算法的代码变形系统模型如图1所示。
非压缩变形使用的变形技术包括插入跳转指令、插入无效指令、等效指令替换、指令乱序、反调试等[3]。
压缩变形模块采用的是本文提出的增强LZMA算法实现。包括加密、并行编码以及加壳。并行编码采用了分块并行策略, 增强的字典搜索策略, 以及增强的输出元组策略。
3 代码变形的增强 LZMA 算法
3. 1 加 密
传统LZMA算法开源、保密性较低, 无法达到软件保护的目的, 所以可在压缩过程中加入加密处理, 以提高压缩算法的安全性。
1) 密钥
密钥是包含4个32位二进制串的数组Key[4]。令BTime为当前系统时间的32位二进制串, BName为当前文件名的二进制串 ( 超过32位低位截断, 少于32位低位补零) , 可根据如式 ( 1) 所示规则得到一个32位BKey。
将BKey串按8位划分得 到4个子串, 分别是BKey1、BKey2、BKey3、BKey4, 则密钥Key[4]各成员如式 ( 2) :
2) 加密策略
代码变形中的加密与压缩类似, 均不可影响PE文件的正常执行, 故加密也需分块执行, 仅加密可加密的部分。令输入数据流为In[], 长度为l, 为向下取整) , 那么输出流Out[]可用式 ( 3) 计算, 将Out[]循环右移l mod32位得到密文。
加密后仅将BTime存入文件中, 在加密算法未知的情况下解密难度较大, 安全性较高。同时该加密算法均为位运算, 运算十分快速, 对压缩时间影响较低。
3. 2 分块并行
按传统的LZMA串行策略, 对PE文件中可压缩数据块 ( 总数为N) 进行编码的时间Ttotal为:
式 ( 4) 中TI ( I = 1, 2, …, N) 表示处理第I块可压缩数据的时间。为了提高算法的压缩时效, 本文按照PE文件可压缩数据集合C分块并行。此时的并行处理时间T'total为:
式 ( 5) 中TMAX为处理PE文件中可压缩数据块的最大时间, T'I ( I= 1, 2, …, N) 表示在并行策略中处理第I块可压缩数据的时间, 包括数据编码时间与并行线程间通信时间。可知T'total< Ttotal, 故采用分块并行策略可以提高LZMA算法压缩PE文件的效率。
3. 3 增强的字典搜索策略
LZMA算法的搜索缓存很大, 目前定位搜索符号的普遍做法是利用两个临近字节的散列值, 但有时会造成散列数组空间的浪费, 搜索时间也不理想。本文设计一种策略, 在遍历待编码区域的同时, 即可完成对字典的搜索查找以及字典的扩充, 不会造成空间的浪费, 压缩时效也较高。
1) 字典的存储结构
由于PE文件是二进制程序文件, 故字典的存储可采用基数树结构, 该基数树的结构特点为:
( 1) 每个节点包含一个三元组 < 索引, 权值, 二进制串 > , 即 < Index, Weight, String > 。Index项与插入字典的顺序有关, 将当前最大Index记作IMAX, 为避免与输出字符混淆, Index最小为2。初始化时树中有3个节点, 根节点Root为 < NULL, - 1, NULL > , 左子节点 < 2, 0, '0' > , 右子节点 < 3, 1, '1' > 。
( 2) 树中每个节点的String都是其左右子树String的前缀。令当前节点的String为SFATHER, 其左子节点的String为SLEFT, 其右子节点的String为SRHIGHT, SOTHER与S'OTHER表示剩余子串, 则:
( 3) 权值计算:
等比数列求和公式 ( 首项a1, 项数为m, 公比为q, k为整数) 。
令二进制串位数为M, 最低位默认为第零位, 根据式 ( 4) 计算出权值w为:
令当前遍历到第i位的子串权值为wi, 根据式 ( 8) , 可推导出i + 1位子串权值wi + 1为:
令wf为父节点的权值, 其左右节点的权值分别为wl和wr, 该树中节点权值必须符合wf< wl< wr。
2) 字典搜索算法
根据字典结构, 本文提出一种基于该结构的字典搜索算法, 算法描述为:
3. 4 增强的输出元组
传统LZMA算法有两种输出, 分别是“长度”, “位置”, 以及“下一个符号”, 这两种输出均经过区间编码[6]。但如果完全匹配某一项时, “长度”便跟字典树中该项二进制串长度相同, 故可简化完全匹配时的编码, 只需输出经区间编码的“位置”即可。这样可以在一定程度上减少编码输出, 提高压缩比。区间编码的编码模式如下。
对于任意的一个可用基数b的w次方表示的整数, 设有一个整数区间 ( i| L≤i≤H) , 令fs为符号S的频度, 符号值小于S的所有符号的频度总和为符号S的累积频度, 记作Fs。则:
可根据符号频度、累积频度以及总频度, 计算出该符号在区间[L, H]上的映射区间[L', H'] ( R'表示映射区间[L', H']的范围, N为所有符号的总频度) 。
编码后输出一个数值V ( 属于[L', H']) , 若V可分解为V =V'bn, 则V'为数据的区间编码。
3. 5 加 壳
为保证压缩变形后PE文件的可执行性, 数据压缩后必须进行加壳, 即添加解压解密代码。在PE文件加载时壳优先获得控制权, 先对文件解压解密后才能正常执行。本文采取加壳策略的模式是将各压缩块统一存储于生成目标PE文件的. data块内, 而将解压解密代码以及构造原PE文件代码块运行环境的代码, 程序入口点均放在. text块中。
4 实验结果与分析
本实验仅测试压缩变形模块, 暂不做非压缩变形处理。实验分为3组, 分别观察增强LZMA算法的保密性, 对文件的可执行性以及压缩效果。实验环境为Intel Core i5 - 2450M CPU2. 50 GHz, 4 GB RAM, Windows XP操作系统。
4. 1 保密性
随机选取本地的一个PE文件, 文件名为360sd_x64_4. 0. 0.4033A. exe, 即360杀毒软件的某一版安装包。暂不进行压缩编码, 仅观察加密前后的文件内容变化, 截取部分代码段如图2、图3所示。
当前系统时 间为2013 /9 /3 15∶39∶11, 用十进制20130903153911转化成二进 制数据并 进行低位 截断, 得到BTime。将文件名360sd_x64_4. 0. 0. 4033A转化成二进制串, 从而得到BName, 根据式 ( 1) 、式 ( 2) , 计算出密钥key[4], 该代码段长度lmod32 = 0, 可由式 ( 3) 得到密文, 恰如图3所示。
从实验结果可以看出, 经过加密之后的代码与原始代码差别较大, 在未经过解密的情况下, 文件不具备原始文件的功能, 甚至不能正常执行。该组实验表明, 增强LZMA算法提升了传统开源LZMA算法的保密性。
4. 2 对文件可执行性的影响
随机选取本地的10个PE文件, 观察压缩变形前与压缩变形后的PE文件的可执行性, 实验结果如表1所示。从实验结果来看, 压缩变形前后的PE文件均能正常执行, 表明本文提出的增强LZMA算法不影响文件的可执行性。
4. 3 压缩效果
分别采用RLE、LZW、LZSS、bzip2 ( - 9) 、gzip ( - 9) 、传统LZMA算法以及增强LZMA算法对上述10个PE文件的可压缩数据部分进行处理, 比较各压缩方法的压缩比与压缩时间。压缩比R计算公式为:
其中Osize为压缩前数据大小, Csize为压缩后数据大小。压缩比、压缩时间分别如表2、表3所示。
从上述两表中可以看出, 在压缩比方面, 增强LZMA算法与RLE、LZW、LZSS、bzip2 ( - 9) 、gzip ( - 9) 及传统LZMA算法相比, 压缩比最小, 说明增强的输出元组与搜索策略可改善传统LZMA算法的压缩比; 在压缩时间方面, 增强LZMA算法与LZSS及传统LZMA算法相比, 压缩时间更短, 说明采用分块并行与增强的搜索策略可降低LZMA算法的压缩时间, 但压缩时间并没有如初期预计的大幅度缩短, 说明增强LZMA算法在分析提取可压缩数据、加密及并行通信方面还是产生了一部分时延, 与gzip与bzip2仍存在一定差距。RLE与LZW的压缩时间虽然较高, 但是压缩比较低, RLE更存在压缩后PE文件体积变大的现象。
5 结 语
本文提出了一种能够应用于代码变形领域的增强LZMA算法, 在传统算法的基础上, 针对加密、分块并行、字典搜索策略、输出元组以及加壳等五个方面做出了进一步的改进。该算法避免了传统数据压缩算法对PE文件的可执行性的影响, 同时兼顾了代码变形所要求的保密性, 在压缩比与压缩时间上也有了明显的提高。
摘要:为了使LZMA压缩算法满足代码变形所要求的文件可执行性与保密性, 并进一步提升压缩效果, 提出了在加密、分块并行、字典搜索策略、输出元组及加壳等五个方面的增强方法, 设计了一个基于增强LZMA算法的代码变形系统模型。根据增强LZMA算法的保密性、压缩效果以及对文件可执行性影响的实验结果表明, 该算法有很好的应用效果。
关键词:软件保护,代码变形,数据压缩,LZMA算法
参考文献
[1]王朝坤, 付军宁, 王建民, 等.软件防篡改技术综述[J].计算机研究与发展, 2011, 48 (6) :923-933.
[2]赵玉洁, 汤战勇, 王妮, 等.代码混淆算法有效性评估[J].软件学报, 2012, 23 (3) :700-711.
[3]吴丹飞, 王春刚, 郝兴伟.恶意代码的变形技术研究[J].计算机应用与软件, 2012, 29 (3) :74-77.
[4]李露, 刘秋菊, 徐汀荣.PE文件中脱壳技术的研究[J].计算机应用与软件, 2010, 27 (9) :279-282.
[5]Li L, Liu Q J, Xu T R.Research and Implementation of Compression Shell Unpacking Technology for PE File[C].Information Technology and Applications, 2009.IFITA'09.International Forum on.IEEE, 2009, 1:438-442.
[6]Tu Z J, Zhang S Y.A Novel Implementation of JPEG 2000 lossless coding based on LZMA[C].Computer and Information Technology, 2006.CIT'06.The Sixth IEEE International Conference, 2006:140-144.
[7]Mohammed M H, Dutta A, Bose T, et al.Deliminate-a fast and efficient method for loss-less compression of genomic sequences[J].Bioinformatics, 2012, 28 (19) :2527-2529.
[8]张中华.PE程序加壳的研究与实现[D].北京:北方工业大学, 2009.
[9]刘坚, 李胜乐, 王子影.基于LZMA的数据库压缩存储应用研究[J].大地测量与地球动力学, 2009, 29 (6) :144-147.
基于分数阶微分的图像增强算法 篇6
图像邻域像素间的灰度值具有一定的相关性, 高度自相似的图像分形信息常以复杂的纹理细节信息表现。传统的Sobel算子、Prewitt算子是一阶边缘锐化算子, 可沿水平方向和垂直方向锐化图像的边缘。Laplacian算子是二阶边缘锐化算子, 对噪声比较敏感。Sobel算子、Prewitt算子、Laplacian算子都是基于空域的整数阶微分运算。整数阶微分运算可以增强图像的高频边缘轮廓信息, 但对图像纹理细零, 导致这部分图像变得模糊不清。节和平滑区域的中低频信息的运算结果约等于分数阶微积分是整数阶微积分的数学推广, 将微积分的阶次从整数阶推广至分数阶。分数阶微积分已经在生物工程、动力学系统、信号处理等领域得到了广泛应用[3,4,5]。在图像处理领域, 分析图像信号的分数阶微积分的拮抗特性与纹理细节提取时, 比较分数阶微分与整数阶微分的仿生Rodieck模型, 并比较两者对应的仿生Rodieck感受野模型的马赫带现象, 可以得出分数阶微分算子比整数阶微分算子更有利于分析和强化图像纹理细节信息的结论[3,4]。
1 Riemann-Liouville分数阶微分理论
目前, 分数阶微积分还没有统一的时域定义的表达式。因为从不同的应用角度分析, 可以得到不同的分数阶微积分定义[3]。比较经典的分数阶微积分定义有:Grünwald-Letnikov定义、Riemann-Liouville定义和Caputo定义等。
其中, Riemann-Liouville定义是对GrünwaldLetnikov定义进行了改进, 使之计算简化, 是目前最常用的分数阶微积分定义。
1.1 Riemann-Liouville分数阶微分定义
信号f (t) ∈[a, t]的v阶分数阶积分的R-L定义为[3,6]
对于任意的正整数n和实数v, 有
当n=1, a=0, 0≤v<1时, 由式 (1) 和式 (2) , 可得信号f (t) 的R-L分数阶微分为
令a=0, 将信号f (t) 在[0, t]区间内N等分, 推导可得
对于二维图像信号f (x, y) , 像素间的最小间隔为1。根据式 (4) , 可得f (x, y) 在x和y方向的分数阶偏微分近似表达式
1.2 分数阶微分增强算子模板构造
设在一定的条件下, 二维图像f (x, y) 在x轴和y轴的分数阶微分可分离, 利用以上Riemann-Liouville分数阶微分表达式的推导结果, 可构造分数阶微分增强算子模板。
构造分数阶微分增强算子模板时, 要考虑中心像素点邻域的x0方向、x45方向、x90方向、x135方向、x180方向、x225方向、x270方向和x315方向等八个方向, 如图1所示。其次, 考虑算子模板的各向旋转不变性, 并将8个方向的分数阶微分模板组合在一起, 可构造如图2所示5×5大小的R-L分数阶微分增强算子模板[4,5,6,7]。采用分数阶微分增强算子模板对图像进行增强处理时, 先要对模板系数进行归一化处理, 再利用模板对图像完成卷积运算。
2 图像增强仿真实验
2.1 灰度图像
对灰度图像pout.tif分别采用Sobel算子 (算子模板系数为[-1-2-1;0 0 0;1 2 1]) 、Prewitt算子 (算子模板系数为[-1-1-1;0 0 0;1 1 1]) 、Laplacian算子 (算子模板系数为[0-1 0;-1 4-1;0-1 0]) 、5×5大小的R-L分数阶微分增强算子进行图像增强的仿真实验, 增强效果如图3所示。
由图3可见, Sobel算子、Prewitt算子锐化了原始图像的边缘, 但对图像的纹理细节信息并没有明显增强。Laplacian算子的图像增强视觉效果比较自然。
相比整数阶微分增强算子, 分数阶微分增强算子能有效保留图像的纹理细节信息, 并且可以根据图像的实际增强效果, 灵活地调节微分阶次。实验中, 微分阶次分别选择为0.35阶、0.48阶、0.59阶、0.79阶。随着分数阶微分阶次的增加, 图像的纹理信息逐渐得到了加强。
2.2 彩色图像
对彩色图像proxy.jpg分别采用Sobel算子 (模板系数[-1-2-1;0 0 0;1 2 1]) 、Prewitt算子 (模板系数[-1-1-1;0 0 0;1 1 1]) 、Laplacian算子 (模板系数[0-1 0;-1 4-1;0-1 0]) 、5×5大小的R-L分数阶微分增强算子进行图像增强的仿真实验, 增强效果如图4所示。
由于彩色图像的R、G、B分量具有相关性, 因此在进行图像增强处理时, 要先将RGB彩色图像转换到HSI色彩空间。
由图4可见, Sobel算子、Prewitt算子显著加强了图像的上下垂直边缘。Laplacian算子锐化了中心像素点上下左右4个方向的边缘, 增强效果从视觉效果上看优于Sobel算子与Prewitt算子。
实验中, 分数阶微分的微分阶次从小到大, 依次选择为0.48阶, 0.55阶, 0.62阶, 0.79阶。随着微分阶次的增加, 图像的纹理信息得到了加强。
3 图像增强效果熵的计算
图像增强效果除了主观评价, 还可以引入熵的概念进行定量分析。熵是信息论中, 对于不确定信息的度量。熵值越大, 表示信息量越大, 反之则越小。对于图像信号而言, 代表图像信息的就是图像的纹理和边缘。如果图像的熵越大, 则表示图像的纹理和边缘信息越丰富。
若一幅图像的灰度等级是{r1, r2, …, rm}, 其概率分别是{p (r1) , p (r2) , …, p (rm) }, 则图像熵的计算公式为
3.1 整数阶图像增强熵的计算
采用Sobel算子、Prewitt算子及Laplacian算子等整数阶图像增强算子, 对灰度图像pout.tif和彩色图像proxy.jpg进行图像增强处理的实验结果, 如图3和图4所示。表1是各种整数阶图像增强算子处理后, 图像熵的计算结果。
由表1可见, 对于灰度图像pout.tif和彩色图像proxy.jpg而言, Sobel算子的熵值最大。从图3和图4的图像增强效果可见, Sobel增强算子对原始图像的边缘轮廓锐化效果最明显。
3.2 分数阶图像增强熵的计算
分数阶微分阶次不同时, 用分数阶微分增强算子对灰度图像pout.tif和彩色图像proxy.jpg进行的图像增强处理的实验结果, 如图3和图4所示。表2和表3是分数阶微分增强算子对图像进行增强处理后, 图像熵的计算结果。
由表2和表3可见, 随着分数阶微分阶次的增加, 分数阶微分增强算子处理后的图像熵值呈上升趋势, 说明图像的纹理细节信息得到了加强。
4 结束语
本文构造了基于Riemann-Liouville定义的5×5大小的分数阶微分增强算子模板, 并采用传统的Sobel、Prewitt、Laplacian等整数阶微分增强算子, 分别对灰度图像和彩色图像进行了图像增强的仿真实验。最后, 引入图像增强效果熵的计算, 给出各种增强算子处理后图像的熵值。
仿真实验结果表明, 分数阶微分增强算子的微分阶次灵活可调, 图像增强的视觉效果明显优于整数阶微分增强算子。但是微分阶次的选择及熵值的大小与图像的纹理信息等密切相关, 还需要进行进一步的研究。
参考文献
[1]阮秋琦.数字图像处理基础[M].北京:清华大学出版社, 2009.
[2]WILLIAM K PRATt.数字图像处理[M].北京:机械工业出版社, 2010.
[3]周激流, 蒲亦非, 廖科.分数阶微积分原理及其在现代信号分析与处理中的应用[M].北京:科学出版社, 2010.
[4]蒲亦非.将分数阶微分演算引入数字图像处理[J].四川大学学报:工程科学版, 2007 (5) :124-132.
[5]黄果, 许黎, 蒲亦非.分数阶微积分在图像处理中的研究综述[J].计算机应用研究, 2012 (2) :414-420.
[6]陈庆利, 蒲亦非, 黄果, 等.数字图像的0~1阶RiemannLiouville分数阶微分增强模板[J].电子科技大学学报, 2011 (9) :772-776.
几种数字图像增强算法的比较 篇7
图像增强是指按特定的需要突出一幅图像的某些信息,削弱或消除不需要信息的处理方法。处理的结果使图像更适合于人的视觉特性或机器的识别系统。图像增强技术主要有空间域法和频率域法两类,增强方法主要有直方图均衡、图像平滑、图像滤波、图像锐化等。本文主要采用直方图均衡、平滑、梯度锐化方法对图像进行处理,通过对处理结果进行比较,得出各算法的适用范围。
2 图像增强算法基本理论
2.1 直方图均衡
直方图均衡也称灰度均衡,处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布tk,按式tk=[(N-)1*tk+.0]5对其取整并得出源灰度sk到tk的灰度映射关系,其中N为灰度的级数。重复上述步骤,得到所有的源图像各灰度级到目标图像各灰度级的映射关系,再按照新的映射关系对源图像各点像素进行灰度转换,即可完成对源图的直方图均衡化。
2.2 图像平滑
图像平滑目的是减少图像的噪声。一般情况,在空间域内可以用领域平均来减少噪声;在频率域,由于噪声频谱通常多在高频段,因此可以采用低通滤波的办法减少噪声,但处理后图像有一定程度的模糊。这主要取决于噪声本身的特性。平滑模板的思想是通过一点和周围几个点的运算(通常称为平均运算)来去除突然变化的点,一般情况下通过选择不同的模板来消除不同的噪声。本文采用一个3*3的高斯模板。
2.3 图像锐化
图像锐化一般有两种方法:一种是微分锐化法,另一种是高通滤波法。本文主要采用微分锐化法中的梯度锐化来对图像进行边缘增强。梯度的数值就是f(x,y)在其最大变化率方向上的单位距离所增加的量。
对于离散的数字图像,梯度G[f(x,y)]由式(1)表示:
为了计算方便,也可以近似为式(2)和式(3)两种形式:
由式(2)和式(3)可见:在图像变化缓慢的地方其值很小(对应图像较暗);而在线条轮廓等变化较快的地方的值很大。图像在经过梯度运算后变得清晰从而达到锐化的目的。
3 图像增强的实现
3.1 灰度均衡前后图像比较
图像灰度均衡前后对比图由图1所示,图2显示了图像在灰度均衡前后直方图对比结果。
由图2可以看出,经过灰度均衡后,图像动态范围加大,使图像对比度扩展,图像更加清晰,特征更加明显;从实现算法上也可以看出,其优点主要在于能自动增强整幅图像的对比度,但只能得到全局均衡化处理的直方图。在实际应用中,往往要根据不同的要求有选择的对某灰度范围进行局部范围内的对比度增强,此时若再采用直方图均衡就不太适合。
3.2 平滑前后图像的比较
图像中的噪声往往和信号交织在一起,如果平滑不当,就会使图像本身的细节如边界轮廓、线条等变的模糊不清。如何既平滑掉噪声又尽量保持图像细节,是对图像进行平滑的首要任务,图像平滑前后的对比图由图3所示。
由图3所示,经过平滑后的图像,很明显的视觉效果就是图像变得柔和,一些突兀的点不再明显。中值滤波在一定的条件下可以克服线性滤波器如最小均方滤波和均值滤波等带来的图像细节模糊,其突出优点是保持原有图像轮廓,同时把图像的噪声去除掉,尤其对抑制椒盐噪声与冲激噪声有独特的能效。但是对于细节多,特别是点、线、尖顶细节多的图像不宜采用中值滤波。通常中值滤波算法中的数据排序费时较多,需要大量的时间来进行数据比较工作,不利于图像的快速处理。但经过平滑处理后,往往使图像中的边界、轮廓变的模糊,为了减少这类不利效果的影响,这就需要利用图像锐化技术,使图像的边缘变的清晰。
3.3 锐化前后图像的比较
经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变的清晰。但要注意,能够进行锐化处理的图像必须要有较高的信噪比,否则锐化后的图像信噪比反而更低,从而使噪声的增加得比信号还要多,因此一般是先去除或减轻噪声后再进行锐化处理。图4为锐化后的对比图像。
由图4所示,图像的边缘、轮廓线以及图像的细节变的清晰。在图像锐化过程中,阈值的选取对图像轮廓的增强有重要的影响,为了实现最好的轮廓增强的效果,对于同一幅图像还可以采用不同的阈值进行处理。
4 结束语
经过3种不同的图像增强算法的处理效果可以看出:对于灰度不均匀的图像可利用灰度均衡化,来均衡图片的灰度等级,以达到增强图像的对比度;可以通过图像平滑滤除图像中的噪声,使图像中一些突兀的点不再明显,缺点是使图像中的边界、轮廓变的模糊;利用图像锐化,使图像的边界清晰明朗化,而且在图像变化缓慢的地方,还可以通过阈值的选取来达到理想的图像增强效果。
参考文献
[1]章毓晋.图像处理和分析[M].北京:清华大学出版社,1999.
[2][美]R.C.冈萨雷斯,P.温茨著,李叔梁等译.数字图象处理[M].科学出版社,1982.
[3]张宏林,蔡锐.Visual C++数字图象模式识别技术及工程实践[M].北京:人民邮电出版社,2003,2.
一种改进的指纹图像增强算法 篇8
在实际应用中,由于受采集设备和活体指纹采集条件等因素的限制,所采集到的指纹图像不能保证都很清晰,图像中可能出现纹线粘连、纹线断裂或对比度不均匀等情形。在这种情况下很难从图像中正确分离出指纹纹线,导致指纹特征的可靠提取变得非常困难,很难达到较高的指纹匹配精度。为了确保指纹特征的提取正确,需要对原始指纹图像进行增强处理,增加指纹纹线的清晰度,增强脊线和谷线的对比度,减少噪声。指纹图像的增强一般由规格化、方向图的计算、滤波几个部分组成。
目前比较常用的指纹图像增强方法有基于Gabor滤波的指纹图像增强方法[1]和基于方向滤波的指纹图像增强方法[2,3]。根据指纹的脊线、谷线和一些噪声在局部区域形成近似的正弦波,Lin Hong等人采用具有良好的方向选择和频率选择特性的Gabor滤波器对指纹图像进行滤波,能够很好地去掉噪声,增强脊和谷之间的清晰度。但此算法需要大量的三角函数运算和指数函数运算,算法速度慢,对计算机的性能要求比较高,很难应用于当下流行的嵌入式指纹识别设备中。聂桂军等人根据指纹纹线间距趋于均匀,局部区域纹线是平行的特点,采用基于方向滤波的方法,取得了很好的效果,速度要比Gabor滤波快得多,但对噪声干扰较大的区域,不能取得很好的效果,本文综合这两种滤波算法的思想,把指纹图像分为三个部分:清晰区域(往往占指纹图像的较大多数)、可恢复区域和不可恢复区域,如图1所示。对清晰区域采用方向滤波方法,对可恢复区域采用Gabor滤波的方法,对不可恢复区域抛弃,不作处理。实验表明,该方法增强效果明显,速度和基于方向滤波的方法差不多。
2 指纹图像增强算法
2.1 规格化
指纹图像规格化主要是降低沿脊线、谷线方向的灰度变化程度,而不改变脊线和谷线结构的清晰对比度,使谷线和脊线灰度控制在一定范围内,其目的是便于后面的一系列处理,图2为规格化前后的图像,具体的计算方法,文献[1,2,3,4,5]都有详细介绍,在这里不作详述。
2.2 方向图
指纹图像的方向图是指纹图像的一种变换表示方式,即用纹线的方向来表示该纹线,根据指纹图像纹线在小邻域内成直线的特征,通常把指纹脊线走向分为8个方向,从水平位置开始,按逆时针方向,每隔π/8确定一个方向,分别用i=0,1,2,…,7来表示,此方法计算的方向角范围是[0,π)。计算方向图的方法有很多,目前多采用灰度方向图计算方法[4]和梯度方向图计算方法[5],图3为在图2规格化基础上,采用灰度方向图计算方法求得的方向图。
2.3 Gabor滤波算法
1)采用梯度方向图的计算方法,计算规格化图像上每一像素的方向;
2)利用公式(1)对规格化指纹图像进行滤波
其中,θ为Gabor函数的方向,f为指纹图像正弦平面波的频率,δx、δy为沿着x轴和y轴的高斯包络面常数。F(i,j)为滤波后的图像,θ(i,j)为像素点(i,j)的方向,G(i,j)为规格化的指纹图像。ωg为Gabor滤波器的大小,一般为1~1.5个脊线宽度,在这里ωg=9;f为1~1.5个脊线周期的倒数,这里取f=0.125;根据经验值,取δx=4.0、δy=4.0效果不错。
2.4 方向滤波算法
1)采用灰度方向图的计算方法,计算规格化图像上每一像素的方向;
2)在规格化指纹图像上,从上到下,从左至右,逐点移动,根据下式和每个像素的方向值,选用相应的滤波器模板[3]进行卷积滤波运算:
式中,gθ(i,j)为相应的滤波器模板的系数,F(x,y)为滤波后的图像,G(i,j)为规格化的指纹图像。
2.5 本文的滤波算法
2.5.1 基于方向图的图像分割方法
根据指纹图像局部区域内纹线方向应大致相同,根据这一思想,把指纹图像划分为若干个w×w的小块,w通常取1~1.5个脊线像素宽度(本文取w=7),因此,w×w小块与指纹脊线和谷线之间有如下三种关系:小块在脊线上、小块在谷线上和小块在脊线和谷线的交界处,如图2所示。
图2黑线表示脊线,两条黑线之间的部分表示谷线,方框a表示小块在脊线上,b表示小块在谷线上,c表示小块在脊线和谷线的交界处。对于脊线或谷线上的块,块内各像素点的方向应大致相同;对于脊线和谷线交界处的块,其内部各像素点的主要有两个方向,一是与脊线方向一致的方向,二是与谷线方向一致的方向。因此我们要判断指纹图像是否清晰,只需计算每一小块内各像素点的方向直方图,如果方向直方图中有峰值存在,表明该区域中有清晰的纹线。如果方向直方图中无明显峰值,则说明该区域为不清晰区域,需作进一步处理。具体操作步聚如下:
1)逐个遍历每一个小块,对每一小块分别进行方向直方图统计,找出小块中方向直方图中的最大值和次大值,分别记为Di(max)和Dj(sec),其中0≤i≤7,0≤i≤7分别表示小块中方向数最大值和次大值的方向;若Di(sec)+Dj(sec)
2)设hi(i=0,1,…,7)分别为小块内像素的8个方向的方向数,对每一个不清晰小块作如下计算:
从式中不难看出,上式反映了小块中方向变化程度,sum越小,表示小块中像素的方向变化越剧烈,也即图像的不可恢复程度越大,若sum
3)如果图像中所有小块都遍历完,则结束,否则转(1)。
2.5.2 算法步骤
1)对规格化的指纹图像,按求灰度方向图的方法,计算指纹图像中每一像素的方向。
2)根据(1)中求得的方向图采用2.5.1中的方向图分割方法,找出指纹图像中的清晰区、可恢复区和不可恢复区。
3)对清晰区中的指纹图像采用方向滤波算法对图像进行滤波,对可恢复区的指纹图像采用Gabor滤波算法对图像进行滤波。对不可恢复区域,抛弃不作处理。
3 结论
本文采用VC实现了上述三种算法,在Pentium 4处理机上测试,Garbor滤波的处理时间为1分钟左右,方向滤波的处理时间不到1秒,本文处理算法也在两秒之内,其速度主要取决于可恢复区域的面积的大小,也即图像的清晰程度。图3是三种算法分别对不同程度的噪声图像进行增强处理的结果。图3中,分割后的图像中,红色小方框表示不可恢复区域,绿色小方框表示可恢复区域,其它部分表示图像中清晰区域。不难看出,通过结合Gabor滤波和方向滤波两种图像增强方法的优缺点,在提高算法速度的同时,也取得了较好的图像增强效果。
摘要:在指纹识别系统中,图像增强是指纹特征提取与识别的前提。对指纹图像增强算法的研究,根据Gabor滤波和方向滤波算法的优缺点,提出了一种改进的指纹图像增强算法,实验表明,该方法增强效果明显,速度和方向滤波算法差不多。
关键词:指纹图像增强,方向滤波,Gabor滤波,方向图,图像分割
参考文献
[1]LIN Hong,WAN Yi-fei,Jain A.Fingerprint image enhancement algorithm and performance evaluation[J].IEEE Trans on Pattern Anal-ysis and Machine Intelligence,1998,20(8):777-789.
[2]武妍,杨磊.一种改进的基于方向滤波的指纹图像增强算法[J].华中科技大学学报:自然科学版,2007,35(2):22-25.
[3]聂桂军,徐荣青.基于连续方向图的指纹图像增强算法[J].微电子学与计算,2007,27(3):87-90.
[4]罗希平,田捷.自动指纹识别中的图像增强和细节匹配算法[J].软件学报,2002,13(5):946-956.
一种新的NSCT域图像增强算法 篇9
图像增强的目的是丰富信息量,加强图像判读和识别效果,以满足某些特殊分析的需要。小波变换在图像增强领域得到广泛应用[1,2],相比于传统的增强方法,如灰度级变换[3]、直方图均衡化[4,5]等,小波变换能更好地增强图像细节特征,获得更佳的视觉效果。但是,由于小波基缺乏方向性,无法分辨出连续边缘,因此,基于小波变换的图像增强方法容易使一些图像边缘变得粗糙,降低了图像的清晰度。Contourlet变换是一种多尺度多方向的变换工具[6,7,8],它可以将不同尺度高频子带细分为2n个不同方向( n为正整数) ,很好地克服了小波变换的方向性问题。因此,使用Contourlet变换可以对图像进行更精细、更准确的分析。然而,Contourlet变换不具备平移不变性,会产生伪吉布斯失真[9,10]。NSCT弥补了上述缺陷,同时具有多尺度、多方向以及平移不变性等优点[11],在图像增强与图像去噪方面更具有优势。基于上述分析,本文提出了一种NSCT域的多尺度Retinex算法和非线性增益函数相结合的图像增强算法。输入图像经NSCT分解后,得到一个低频子带和多个高频子带; 采用多尺度Retinex增强算法对低频子带系数进行处理,利用S型余弦函数将低灰度值和高灰度值进行一定程度的压缩,对中间灰度进行线性拉伸,增大图像的动态范围; 使用权重因子可以有效抑制Retinex算法带来的光晕现象,同时利用Gamma校正和自动截断拉伸对图像灰度进行调整,得到处理后的低频子带系数。同时,采用非线性增益函数对高频子带系数进行调整,依据贝叶斯准则估计区分噪声和细节的阈值,根据阈值选择非线性增益函数的参数,使得在增强图像边缘和细节的同时可以较好地抑制噪声。
1 非下采样Contourlet变换
NSCT取消了Contourlet变换中的上采样和下采样操作,使得NSCT具有很好的平移不变性,同时还继承了Contourlet变换的多尺度多方向性。NSCT的多尺度分解是通过使用基于两通道滤波器组实现的,需要满足Bozout恒等式( 即: 理想重构条件) 的平移不变滤波器组[12],它将图像分解成大小与原图像大小相同的低通子带、带通子带。理想重构条件满足:
其中,H0( z) 和G0( z) 分别表示低通的分解、合成滤波器; H1( z)和G1( z) 表示高通的分解、合成滤波器。
方向滤波器组DFB( direction filter bank ) 可以将不同尺度的带通子带分解成多个方向子带,它通过l层的二叉树状分解,有效地将信号分解为2l个子带,将信号频带分割成楔形,得到某一尺度下多个方向的高频子带。NSCT分解结构如图1 所示。
图1( a) 表示四个不同尺度下对图像频域的分割图,图1( b) 表示对第四个尺度子带进行3 层分解时的理想频带分割示意图。
2 NSCT域图像增强算法
噪声有很大的随机性,在变换域中不具有几何结构[4],图像经过NSCT变换后,噪声主要集中于各个高频子带中,低频子带中几乎不含噪声信息。使用多尺度Retinex增强算法对低频子带系数进行处理,可以改善图像亮度的均匀性; 高频处理时,为了防止增强细节的同时放大噪声,需要先对噪声与信号的阈值进行估值,再利用增强函数对系数处理,保证在增强图像纹理和细节的同时抑制噪声。算法实现框图如图2 所示。
2. 1 低频子带的多尺度Retinex增强
2. 1. 1 多尺度Retinex增强算法
Retinex算法实质是将一幅图像用环境亮度函数与物体反射函数的乘积表示,然后通过改变亮度图像和反射图像在原图像中的比例来达到增强图像的目的[13,14]。图像经过NSCT变换后,能量信息主要集中在低频子带部分,通过Retinex算法可以很好地完成低频子带图像的动态压缩,改善图像的整体视觉效果。多尺度Retinex算法可用式( 2) 表示:
其中,N为尺度个数,ωi为对应于第i个尺度的加权值,Gk( x,y) 对应于第i个尺度的环境函数,权值 ωi需要满足,实际应用中一般取相同的 ωi的值,即: ωi= 1 / N 。I( x,y) 表示输入图像,* 表示卷积运算,R( x,y) 表示经过Retinex算法处理后输出的图像。Gi( x,y) 对应于第i个尺度的环境函数,通常使用高斯函数的形式表示:
式中,λ由决定。
一种改进的Retinex算法[16],利用S型余弦函数将低灰度值和高灰度值进行一定程度的压缩,对中间灰度进行线性拉伸,增大图像的动态范围; 引入权重因子 ω( x,y) 以抑制Retinex算法带来的光晕现象; 最后对处理后的图像进行Gamma校正。算法可用如下式子表示:
其中,权重因子按下式计算:
Gamma校正按下式处理:
仅仅通过Gamma校正调整图像亮度并不够: γ 取值小于1时图像变亮,γ 取值大于1 时图像变暗,每一次调整对整幅图像而言 γ 取值是恒定的,况且Retinex算法增强后的图像仍然较灰暗,导致该算法不能达到最佳的视觉效果。考虑到经Retinex算法处理后的子带系数近似服从正态分布,可以使用截断拉升函数解决这个问题。一种截断拉伸函数如下[17]:
式中,Rmax、Rmin分别为R'(x,y)的最大值和最小值,Rout(x,y)为拉伸后的系数。根据正态分布特性,可以利用系数的均值Md和标准差Sd确定截断的上下限,即:Rmin=Md-μ×Sd,Rmax=Md+μ×Sd,其中,μ取值范围为1.5~3。
2. 1. 2 低频子带增强流程
先使用改进的多尺度Retinex增强算法对低频子带系数处理,再使用截断拉伸函数对系数进一步处理,以避免图像灰暗的情况,从而达到最佳的视觉效果。增强算法流程图如图3 所示。
对低频子带系数处理的步骤如下:
( 1) 将低频子带系数C( x,y) 映射到灰度图像的灰度值范围以便能够使用Retinex增强算法,现采用如下线性映射的方式:
( 2) 然后,将C'( i,j) 作为多尺度Retinex增强算法的输入图像,按照式( 4) 和式( 6) 进行处理。
( 3) 对R'( i,j) 使用式( 7) 进行截断拉伸处理,避免处理后的图像灰暗;
( 4) 采用线性变换将处理后的系数映射到[Cmin,Cmax]范围内。变换式子如下:
式中,Cmax、Cmin表示系数中的最大值、最小值,Cout( i,j)为处理后的低频子带系数。
2. 2 高频子带系的非线性增强
2. 2. 1 阈值估计
本文采用贝叶斯萎缩法估计噪声与信号的阈值。假设图像受到加性高斯白噪干扰,且高频子带系数总体上服从广义高斯分布,那么根据贝叶斯准则,可得到贝叶斯萎缩阈值为[18]:
式中,第k尺度、第s个高频子带的噪声标准差:
其中,gks( i,j) 为第k尺度、第s个高频子带( i,j) 位置上的高频系数; Median( ·) 表示求解中值运算。
其中,子带的信号标准差为 σ ( k,s) ,相应子带系数的方差为。
2. 2. 2 非线性增益函数
高频系数调整的目的是抑制噪声并增强细节,因此所选取的非线性增益函数需要满足这两个功能。现采用一种非线性增益函数对高频子带系数处理:
其中,a=1/[g(c(1-b))-g(-c(1+b))],并且g(t)=1/(1+e-t)。
图4( a) 表示参数c取20,参数b分别取值0. 3、0. 5 和0. 8时的函数曲线。由曲线可知,参数b的取值决定了系数的提升与否,物理意义上可以认为该值是子带系数中噪声与信号的阈值。本文算法中,参数b的取值采用式( 14) 进行自适应计算,从而求得该阈值下的最优参数解。
图4( b) 表示参数b取值0. 5,c分别取值为10、20 和30 时的曲线,可知参数恒定的情况下,c控制曲线的斜率变化,c的值越大,曲线斜率变化越快,对系数的提升与抑制程度变化更快。
参数b 、c确定后,非线性增益函数也就确定,按照式( 15)对每个高频子带进行调整:
其中,max表示子带系数中的最大值,fsk(x,y)表示处理后的子带系数。
2. 3 增强算法流程
增强算法的具体步骤如下:
( 1) NSCT分解: 采用NSCT对原始图像进行分解,得到图像的一个低频子带和多个高频子带;
( 2) 低频子带处理: 使用多尺度Retinex增强算法对低频子带系数进行处理,包括多尺度Retinex增强、Gamma校正和自动截断拉伸等;
( 3) 细节增强: 对每一个高频子带,按式( 10) 计算信号与噪声估计阈值,再按式( 14) 计算参数b ,选择合适的参数c的取值,按式( 15) 完成高频子带系数的调整;
( 4) 重构图像: 对处理后的子带系数,进行NSCT重构,得到增强后的图像。
3 实验结果与分析
算法的实现是基于MATLAB 2008b编程环境,硬件设备采用HP xw6600 Workstation、配置为Intel ( R) Xeon ( R) CPU E5430 2. 66 GHz / 2. 00 GB内存; 非下采样Contourlet变换选用非下采样塔形分解方式“maxflat”、非下采样方向滤波器组采用“dmaxflat7”; 多尺度Retinex增强部分尺度取值分别为10、80 和200,权重取值均为1 /3 。
3. 1 不同增强算法比较
使用算法分别对大小为500 × 500、灰度级为256 级的花粉图像,大小为400 × 256、灰度级为256 级的淡水鱼图像,大小为257 × 345、灰度级为256 级的铁轨图像三幅图像进行处理,并与改进的多尺度Retinex算法[16]和基于平稳小波的增强算法[2]进行比较,算法增强效果见图5、图6 和图7 所示。
图 6 淡水鱼图像增强效果比较
图5、图6 和图7 分别为铁轨图像、淡水鱼图像和花粉图像采用不同增强算法进行增强处理的效果图。由图可以看出,原始图像的灰度动态范围低,细节模糊; 经改进的多尺度Retinex算法处理后,图像的灰度动态范围有所提升,但对暗区的增强效果不佳,如铁轨图像暗区的窄沟和花粉图像暗区仍然没有改善; 经平稳小波增强算法处理后,能够增强图像暗区部分的对比度,提升图像的可读性,但图像对比度没有明显提高,细节、纹理信息增强不足,清晰度较差,如铁轨图像的裂纹和淡水鱼图像的纹理都没有改善,且图像目标和背景没有明显区分,原因在于小波变换的方向局限性,降低了图像的清晰度; 本文算法不但增强了图像细节和对比度,还有效改善了图像的光亮度,原因在于改进的多尺度Retinex算法处理低频子带获得了最优的光亮度估计,也避免了光晕现象,使用非线性增益函数对高频子带系数的调整有效增强了图像的纹理细节,同时抑制噪声对图像增强的影响。
3. 2 定量指标评价
为了客观地评价图像的增强效果,采用信息熵、对比度[19]和清晰度[20]3 个评价指标,定量评价上述三种算法的增强效果,统计的参数结果见表1 所示。
对比表1 的数据可以看出,改进的多尺度Retinex算法虽获得较高的对比度和清晰度,但熵值较低。如淡水鱼图像的处理后熵值仅为6. 754,而平稳小波算法和本文算法都达到了7. 2以上,其原因在于算法是在空域对图像处理,在增强对比度时未区分背景与目标。平稳小波方法能获得较高的熵值,然而对于淡水鱼图像和花粉图像,对比度都最低,说明针对纹理细节比较丰富的图像,该方法增强效果有限。原因在于平稳小波方法的方向局限性,导致提取细节的方向信息不足,使得算法无法获得最佳的增强效果。相比之下,本文算法的各项参数都是最优,信息熵均能达到7. 0 以上,并且具有更高的对比度和清晰度值。原因在于,利用NSCT对图像进行多尺度、多方向分解,很好地提取了细节信息; 使用贝叶斯萎缩法准确估计噪声与信号的阈值,结合非线性增益函数提升细节的同时抑制噪声; 低频子带使用改进的多尺度Retinex算法使增强图像获得较好光照估计和图像的灰度动态范围,同时避免了光晕现象,因此获得了更好的增强效果。
4 结语
本文基于非下采样Contourlet变换,将改进的Retinex增强算法与非线性增益函数相结合,提出了一种新的NSCT域图像增强算法。从实验结果可以看出,算法能够有效提高图像对比度和清晰度,增强图像细节信息。与传统图像增强算法相比,本文算法具有以下优点:
( 1) 将图像变换到NSCT域进处理,利用NSCT的多尺度、多方向特性,获得更多的图像边缘和细节信息。
( 2) 使用多尺度Retinex算法对低频子带系数进行处理,有效改善了图像的亮度均匀性。
( 3) 利用S型余弦函数调整图像灰度分布,增大了图像的动态范围; 权重因子对各尺度高斯模板滤波加权,以修正高斯滤波的结果,有效克服了Retinex算法带来的光晕现象。
( 4) 采用非线性增益函数调整高频子带系数,结合贝叶斯萎缩阈值法,在增强细节的同时实现了对噪声的抑制,图像增强效果更佳。
摘要:针对实际应用中所采集的部分图像对比度低、边缘细节模糊的问题,提出一种基于非下采样Contourlet变换NSCT(Nonsubsampled Contourlet Transform)的多尺度Retinex与非线性增益函数相结合的图像增强算法。使用改进的多尺度Retinex算法对低频子带系数进行处理,以提升图像的灰度动态范围并改善图像的亮度均匀性;采用非线性增益函数和贝叶斯萎缩阈值相结合的方法对各个高频子带系数进行处理,在提升图像纹理细节的同时抑制噪声。实验结果表明:该算法能够有效提升图像对比度和清晰度,增强图像细节信息,有效改善视觉效果。