图像平滑处理

2024-08-21

图像平滑处理(通用6篇)

图像平滑处理 篇1

摘要:图像平滑处理在数字图像处理中有着重要的作用。系统分析目前具有代表性的图像平滑处理方法, 并用MATLAB7.0软件实现了各种算法。实验结果表明, 各种方法均有各自的优缺点和适用条件, 在做图像平滑处理之前, 应对图像进行分析, 针对图像的特点和应用需求选用合适的方法。

关键词:图像增强,图像平滑

0 引言

图像增强的方法比较多, 有加噪音, 平滑, 锐化, 伪彩色增强等多种方法。本文重点对其中的平滑处理方法进行分析。图像的简单平滑是图像增强处理中最基本的方法之一, 它利用卷积运算对图像邻域的像素灰度进行平均化, 从而达到减少图像中杂点影响、降低图像对比度的目的。

本文分别选取了空域平滑处理中的均值法, 领域平均法, 中值滤波法, 巴特沃失低通滤波这几种平滑处理方法进行详细分析, 并对不同的方法进行比较总结出各种方法的优缺点和适用范围, 从而为人们在实际应用中选择合适的图像平滑方法提供实验依据。文中所有方法的实践均在MATLAB7.0环境中实现。

1 平滑处理方法

1.1 平滑处理的模板运算

设f (m, n) [符号f (m, n) 不仅可以表示二元离散函数f (m, n) , 而且还可以表示矩阵f中的元素f (m, n) , 以下g (m, n) 、T (m, n) 和h (m, n) 等符号的含义均相同。]为含噪图像信号, 则平滑处理后的图像信号g (m, n) 为:

undefined

式 (1) 可视为模板运算[3], 其中 (2M+1) × (2M+1) 阵列T称为乘积模板。其算法可分解为:

①将模板T在待处理图像中平移, 并将模板中心与图像中某个像素位置重合。

②将模板T上的系数 (矩阵元素) 与模板下对应的像素灰度值相乘。

③将所有乘积相加。

④将和 (模板的输出响应) 赋给处理后图像中对应模板中心位置的像素。

⑤重复上述过程, 直至模板T的中心遍历待处理图像中所有像素。

要达到平滑的目的, 模板T的系数首先应具有非负性, 即对于所有m, n, 有T (m, n) 0。因此该处理算法实际上就是进行 (2M+1) × (2M+1) 邻域的加权平均, 各权值 (模板系数) 不同, 平滑效果就不一样。此外, 还应该满足归一性, 即΢ (m, n) T (m, n) =1, 这是为了使图像的平均灰度值在处理前后不发生变化, 以及输出图像仍在原来的灰度范围内

尽管在空域算法中使用乘积模板的概念简洁清晰, 但要进行频域分析, 还须利用卷积模板的概念, 为此首先引入二维离散卷积的定义。二维离散信号f1 (m, n) 和f2 (m, n) 的卷积f (m, n) 定义为

这样, 式 (1) 可以写为

于是上述平滑处理系统可看作一个离散滤波器, 且是线性移不变的, 其冲激响应阵列h (m, n) =T (-m, -n) , 如图1所示。冲激响应阵列h又称为卷积模板, 当乘积模板T满足对称条件T (m, n) =T (-m, -n) 时, 有h=T, 这时h和T可以不加区别地统称为模板

1.2 邻域平均算法及其改进

在式 (1) 中, 若模板各系数均取常值:T (m, n) =1/N, 其中N= (2M+1) 2, 这时输出图像信号与原图像信号之间的关系为:

undefined

或表示为:

undefined

式中, S是以点 (m, n) 为中心的 (2M+1) × (2M+1) 邻域。在这种方法中, 对邻域中的各点平等对待 (权值相同) , 算法简单, 运算速度快, 并且仍然满足Σ (m, n) T (m, n) =1。可以证明, 平滑后的噪声标准差降低为原来的undefined, 因此邻域尺寸越大, 抑制噪声的效果越显著。

若要突出中心点的核心地位, 以及强调临近点的作用, 可将上述算法加以改进, 一种改进算法的模板与邻域平均算法的模板对比如下 (以3×3尺寸为例) :邻域平均和一种改进算法。

1.3 中值滤波

在中值滤波算法中, 对于孤立像素的属性并不非常关注, 而是认为图像中的每个像素都跟邻域内其他像素有着密切的关系, 对于每一个邻域, 算法都会在采样得到的若干像素中, 选择一个最有可能代表当前邻域特征的像素的灰度作为中心像素灰度, 这样就有效避免了离散型杂点对图像的影响。

明白了中值滤波算法的思路后, 如何有效地选择一个最有可能代表邻域特征的像素灰度就成了算法的核心问题。直观地, 邻域像素中灰度大小居中的点通常能很好地描述邻域的属性, 因此在中值滤波算法中, 中心像素的灰度是通过对邻域内像素灰度排序然后取中值来确定的。

1.4 巴特沃失低通滤波

1.4.1 分频

对一幅图像来说, 能量主要集中在低频分量中, 而噪声和图像细节信息主要集中在高频分量中。在图像处理过程中, 将两种分量分离开, 进行不同的操作与处理, 可以取得更佳的处理效果。分频的目的就是将输入图像的高频分量和低频分量分开。进行分频时, 既可以选择高通滤波器又可以选择低通滤波器, 都能达到分频的目的。本文实验的过程中使用的是低通滤波器。在诸多低通滤波器中, Buterworth低通滤波器没有“振铃”现象, 而且能够提高图像的细节清晰度。

Buterworth低通滤波器 (BLPF) 传递函数:

undefined

式中, D0为截止频率, undefined, 在D (u.v) =D0处, undefined;为阶数, 取正整数, 用来控制衰减速度。

对一幅输入图像f (x, y) , 可将其分解为高频分量fh (x, y) 和低频分量f1 (x, y) , 如下式所示:

f (x, y) =fh (x, y) +f1 (x, y)

将图像f (x, y) 通过2阶Buterworth低通滤波器g (x, y) , 即f (x, y) 与g (x, y) 进行卷积, 可得到图像的低频分量f (x, y) , 如下:

f1 (x, y) =f (x, y) *g (x, y)

其中, undefined为截止频率) 在图像f (x, y) 中减去低频分量f1 (x, y) 就得到高频分量:

fh (x, y) =f (x, y) -f1 (x, y)

1.4.2 低频分量均衡化

图像的能量主要集中在低频分量f1 (x, y) 中, 对图像的整体视觉效果起着决定性的作用, 必然要对该分量进行直方图均衡。对低频分量f (x, y) 利用传统算法进行直方图均衡, 得到t1 (x, y) :

t1 (x, y) =HE (f1 (x, y) )

噪声存在于高频分量中, 如果直接进行直方图均衡, 必将使噪声得到增强, 影响图像质量。因此, 将fh (x, y) 乘上一个加权系数a得到th (x, y) :

th (x, y) =a*fh (x, y)

a的取值因具体情况而定:若图像受噪声影响比较严重, a的取值应小于1, 以免放大噪声;若图像受噪声影响比较小, a的取值应大于l。

输出图像f (x, y) 为高频分量fh (x, y) 和低频分量f1 (x, y) 之和:

f (x, y) =f1 (x, y) +fh (x, y)

所以, 输出图像f (x, y) 为fh (x, y) 和HE (f1 (x, y) ) 的线性组合, 即:

t (x, y) =a*fh (x, y) +HE (f1 (x, y) )

t (x, y) 就是希望得到的图像。

通过分频, 输人图像被分解为高频分量和低频分量, 对两分量进行不同的操作, 再经过线性组合得到最终的增强图像, 图像清晰度高, 细节信息丰富, 增强效果明显。

2 仿真结果与分析

利用MATLAB对图像平滑处理算法进行仿真, 结果如图1所示, 其中图1 (a) 是原始图像, 与受到噪声污染的图像, 图1 (b) 是原图像和均值法后的图像, 图1 (c) 是原图像和领域平均法后的图像, 图1 (d) 是原图像和中值滤波法后的图像, 图1 (e) 是原图像和巴特沃失低通滤波法后的图像。由仿真结果可知, 简单平滑的结果中不难发现, 平滑的邻域边长越大, 可以消除的杂点影响就越多, 同时图像的对比度下降也越多。使用简单平滑的方法进行杂点消除往往以大幅降低图像清晰度为代价。另外, 使用简单平滑处理实质上只能将杂点无限放大而使人眼不易察觉, 但不能真正消除杂点, 这是图像简单平滑处理的一大缺陷。图像的中值滤波很好地解决了图像杂点的问题, 然而对于细节较多的图像, 中值滤波处理常常导致图像信息的丢失。巴特沃失低通滤波算法的处理结果较传统算法与原图更为接近, 通过增强, 更好地将退化图像恢复出原始图像的信息, 并且还有了更为丰富的信息。采用Buterworth低通滤波器将图像分为高频分量和低频分量, 低频分量进行HE算法直方图均衡, 然后再将高频分量和低频分量进行融合得到最终处理结果, 这样可以突出图像的细节信息, 使图像整体视觉效果得到改善, 有利于后续图像处理工作的进行。

参考文献

[1]朱秀昌, 刘峰, 胡栋.数字图像处理与图像通信[M].北京:北京邮电大学出版社, 2002:67-84.

[2]陈廷标, 夏良正.数字图像处理[M].北京:人民邮电出版社, 1990:255-271.

[3]张晓黎, 陆新华, 吴冲龙.模板运算的传递函数分析[J].计算机与现代化, 2001 (6) :20-23.

[4]阮秋琦.数字图像处理[M].北京:电子工业出版社, 2004.

[5]高浩军, 杜宇人.中值滤波在图像处理中的应用[J].电子工程师, 2004 (8) :35-36.

[6]夏良正.数字图像处理[M].南京:东南大学出版社, 1999:43-83.

[7]李俊生.一种图像平滑处理方法的空域算法与频域分析[J].江苏:常州工学院学报, 2004.

[8]冈萨雷斯.数字图像处理[M].北京:电子工业出版社, 2004:132-137.

[9]Kenneth R Cattlemen.Digital image processing[M].Englewood Cliffs, New Jersey, USA:Prentice Hall International, Inc., 1998.

[10]Tsurnoto S H.Extraction of knowledge from databases based on RS[C]//Proceedings of IEEE International Conference on Fuzzy Sys-tems, New Orleans, Louisiana, USA, 1996:748-754.

[11]Ko Sung-Jea, Lee Yong Hoon.Center weighted median filters andtheir applications on image enhancement[C].IEEE Transactions onCircuits and Systems, 1991, 38 (9) :984-993.

数字图像的平滑处理方法研究 篇2

一幅图像在获取和传输等过程中, 会受到各种各样噪声的干扰。图像噪声来自多方面, 有系统外部的干扰, 如电磁波或经电源串进系统内部而引起的外部噪声, 也有来自系统内部的干扰, 如摄像机的热噪声, 电器的机械运动而产生的抖动噪声等。这些噪声干扰使图像退化、质量下降, 表现为图像模糊, 特征淹没, 对图像分析不利。图像增强是数字图像处理的基本内容之一。它是指按特定的需要突出一幅图像中的某些信息, 同时, 削弱或去除某些不需要的信息的处理方法。其主要目的是使处理后的图像对某种特定的应用来说, 比原始图像更适用。因此, 这类处理是为了某种应用目的而去改善图像质量的。处理的结果使图像更适合于人的视觉特性或机器的识别系统。应该明确的是增强处理并不能增强原始图像的信息, 其结果只能增强对某种信息的辨别能力, 而这种处理有可能损失一些其它信息。

图像的平滑是一种实用的数字图像处理技术, 主要目的是为了减少噪声。一个较好的平滑处理方法应该既能消除图像噪声, 又不使图像边缘轮廓和线条变模糊, 这就是研究数字图像平滑处理要追求的目标。一般情况下, 减少噪声的方法可以在空间域或频率域进行处理, 主要有邻域平均法, 低通滤波法, 多图象平均法等。本文将对上述方法作一些探讨。

1 空间域平滑处理

1.1 邻域平均法

邻域平均法是简单的空域处理方法。这种方法的基本思想是用几个像素灰度的平均值来代替每个像素的灰度。假定有一幅N×N个像素的图像f (x, y) , 平滑处理后得到一幅图像为g (x, y) 。g (x, y) 由下式决定:

式中x, y=0, 1, 2, ……, N-1, S是 (x, y) 点邻域中点的坐标的集合, 但其中不包括 (x, y) 点, M是集合内坐标点的总数。式 (1) 说明, 平滑化的图像g (x, y) 中的每个像素的灰度值均由包含在 (x, y) 的预定邻域中的f (x, y) 几个像素的灰度值的平均值来决定。例如, 可以以 (x, y) 点为中心, 取单位距离构成一个邻域, 其中点的坐标集合为

邻域平均法的空域思想使得算法的思想简单、清晰;处理结果表明, 邻域平均算法对抑制噪声是有效的。但是, 随着邻域的增大, 图像的模糊程度也愈加严重。为克服这一缺点, 可以采用阈值法减少由于邻域平均所产生的模糊效应。其基本方法由下式决定

式中T就是规定的非负阈值。这个表达式的物理概念是:当一些点和它的邻域内的点的灰度平均值的差不超过规定的阈值T时, 就仍然保留其原灰度值不变, 如果大于阈值T时就用它们的平均值来代替该点的灰度值。这样就可以大大减少模糊的程度。如图1所示, 为一幅有噪声图像在进行邻域平滑处理后和原图的对比。

1.2 低通滤波法

这种方法是一种频域处理法。在分析图像信号的频率特性时, 一幅图像的边缘、跳跃部分以及颗粒噪声代表图像信号的高频分量, 而大面积的背景区则代表图像信号的低频分量。用滤波的方法滤除其高频部分就能去掉噪声, 使图像得到平滑。

由卷积定理可知:

其中F (u, v) 是含有噪声图像的博里叶变换, G (u, v) 是平滑处理后的图像之傅里叶变换, G (u, v) 是传递函数。选择传递函数H (u, v) , 利用H (u, v) 使F (u, v) 的高频分量得到衰减, 得到G (u, v) 后再经反傅里叶变换就可以得到所希望的平滑图像g (x, y) 。根据前面的分析, 显然H (u, v) 应该具有低通滤波特性, 所以这种方法被称之为低通滤波法平滑化处理。低通滤波平滑化处理流程如图1所示。

常用的低通滤波器有下面几种。

(1) 理想低通滤波器。一个理想的二维低通滤波器的传递函数由下式表示

式中D0是一个规定的非负的量, 叫做理想低通滤波器的截止频率。D (u, v) 是从频率域的原点到 (u, v) 点的距离, 即

H (u, v) 对u, v来说是一幅三维图形。

理想低通滤波器平滑处理的概念是清晰的, 但在处理过程中会产生较严重的模糊和振铃现象。这种现象正是由于傅里叶变换的性质所决定的。

(2) 布特沃斯 (Butterworth) 低通滤波器。一个n阶布特沃斯低通滤波器的传递函数由下式表示:

式中D0为截止频率, D (u, v) 的值由下式决定:

布特沃斯低通滤波器又称最大平坦滤波器。它与理想低通滤波器不同, 它的通带与阻带之间没有明显的不连续性。也就是说, 在通带和阻带之间有一个平滑的过渡带。通常把H (u, v) 下降到某一值的那一点定为截止频率D0。在式 (6) 中是把H (u, v) 下降到原来值的1/2时的D (u, v) 定为截频点D0。一般情况下常常采用下降到H (u, v) 最大值的1/姨2那一点为截频点。这样, 式 (6) 可修改为式 (8) 的形式:

(3) 指数低通滤波器。在图像处理中常用的另一种平滑滤波器是指数低通滤波器。它的传递函数如下式表示:

式中D0为截频, D (u, v) 由下式决定:

式中的n是决定衰减率的系数。从式 (9) 可见, 如果D (u, v) =D0, 则

(4) 梯形低通滤波器。梯形低通滤波器传递函数的形状介于理想低通滤波器和具有平滑过渡带的低通滤波器之间。它的传递函数由下式表示:

其中, 在规定D0和D1时要满足D0<D1的条件。一般为了方便, 把传递函数的第一个转折点D0定义为截止频率;第二个变量Di可以任意选取只要D1大于D0就可以。

1.3 多图像平均法

如果一幅图像包含有加性噪声, 这些噪声对于每个坐标点是不相关的, 并且其平均值为零, 在这种情况下就可能采用多图像平均法来达到去掉噪声的目的。

设g (x, y) 为有噪声图像, n (x, y) 为噪声, f (x, y) 为原始图像, 可用下式表示:

多图像平均法是把一系列有噪声的图像{gj (x, y) }迭加起来, 然后再取平均值以达到平滑的目的。具体做法如下:

取M幅内容相同但含有不同噪声的图像, 将它们迭加起来, 然后作平均计算, 如下式所示:

由此得出:

式中是的数学期望, 和是和n在 (x, y) 坐标上的方差。在平均图像中任一点的均方差可由下式得到:

由上二式可见, M增加则像素值的方差就减小, 这说明由于平均的结果使得由噪声造成的像素灰度值的偏差变小。从式 (15) 中可以看出, 当作平均处理的噪声图像数目增加时, 其统计平均值就越接近原始无噪声图像。这种方法在实际应用中的最大因难在于把多幅图像配准, 以便使相应的像素能正确地对应排列。

2 结束语

图像平滑即消除噪声是图像处理中一个重要的方面, 由于图像受到干扰而产生噪声的原因是多方面的, 在对一幅图像进行平滑处理前, 必须仔细分析其产生噪声的原因。选择合适的平滑方法, 才能既消除图像噪声, 又不使图像边缘轮廓或线条变模糊, 经过这样的处理后, 图像更符合人的视觉特性。随着数字图像处理的广泛应用, 一些在人工智能、控制领域中成熟或前沿的数学模型如神经网络、模糊数学、自适应控制等相关技术在数字图像处理中逐渐采用, 从而使建立的图像处理数学模型效率更高、性能更好。这些方法在不同程度上增强了去噪效果, 但也带来了运算复杂、适用面窄等缺点。因而我们在选择消除噪声方法时, 必须综合考虑各种因素, 选择最适合的平滑方法。

摘要:图像在获取和传输过程中, 会受到各种噪声的干扰, 使图像退化, 质量下降, 对分析图像不利。图像的平滑或去噪一直是数字图像处理技术中的一项重要工作。为此, 论述了在空间域中的各种数字图像平滑技术方法。

关键词:数字图像,图像增强,平滑处理

参考文献

[1]朱秀昌, 刘峰, 胡栋.数字图像处理与图像通信[M].北京:北京邮电大学出版社, 2002.

[2]阮秋琦.数字图像处理学[M].北京:电子工业出版社, 2001.

[3]贾永红.计算机图像处理与分析[M].武汉:武汉大学出版社, 2001.

[4]杨枝灵, 王开.Visual C++数字图像获取处理及实践应用[M].北京:人民邮电出版社, 2003.

图像平滑处理 篇3

关键词:VB编程,鼠标拖动,大图像

1 算法分析

1.1 如何移动

在Picture控件中显示的图片,实际上是由若干个像素点构成,这些像素点排列成若干行和若干列,形成一个矩形区域,也就是Picture控件的内部工作区域。如果图片尺寸大于控件的内部工作区域,只能看到图片的一部分,相当于在图片上取了和控件的内部工作区域大小相同的一矩形块显示在控件中。如果能按鼠标移动的轨迹,不断地从原图片中取出要显示在控件中的那部分矩形块,即可实现鼠标移动图像的功能,上述分析用图形来表述如图1所示。

1.2 坐标的确定

A点坐标和B点坐标是原始图片中的坐标点,在实际操作中,由于可获得的坐标值是控件内部的坐标,因此必须对这两个坐标系统进行转换。假设在Picture控件中的a(x1,y1)点按下鼠标左键,按住并移动到b(x2,y2)点,那么鼠标移动的距离为:

在X坐标方向上:△x=x2-x1

在Y坐标方向上:△y=y2-y1

同样,可认为鼠标是在原图上移动了相同的距离,即:在X坐标方向上移动了△x,在Y坐标方向上移动了△y。设Picture控件所显示的图形块是原图片左上角的一片区域,即图1中的初始位置(原图片的坐标原点O(0,0)上),在Picture控件中鼠标移动了一段距离(△x,△y),在原图片中也同样移动了相同的距离到达A点,那么A点在原图片中的坐标值即为:(△x,△y);如果鼠标再在Picture控件中移动一定的距离(△x1,△y1),在原图片中也同样移动了相同的距离到达B点,那么B点在原图片中的坐标值即为:(△x+△x1,△y+△y1),依此类堆。

由此可见,在原图中坐标点的确定是由鼠标在Picture控件中移动的距离而定的。从每次在Picture控件中按下鼠标左键移动的距离,即可得到原图中鼠标移动的轨迹(即各个坐标点值),并根据这个轨迹来获得图像移动的效果。

1.3 平滑移动

如果把上述的移动距离△x或△y取值为1,即按一个像素点一个像素点来移动,理论上应该是平滑移动,但实际操作上是无法做到的。一是这样做运算量太大,每移动一个像素点就要在原图片中取出一个矩形块重画Picture控件,难以实现;二是人操作鼠标时会发生抖动的情况,实际效果也是抖动的。解决这个问题可利用计时器平均时间,即每隔相同时间取一次坐标值的办法来实现平滑。当然这个时间间隔不能太小,也不能太大,通过实验发现其取值在20~80ms之间效果较好,这与机器的运算速度和Picture控件显示区域大小有关,可通过具体测试而定。

2 界面设计

新建一个工程,在窗体中放入两个图片框控件Picture1和PicL,Picture1用于显示图片内容,PicL用于装入原始图片;一个计时器控件Timer1;一个通用对话框控件CD1;两个命令按钮Command1和Command2。

3 程序代码

4 结束语

在程序中用到两个API函数,StretchBlt函数用于将一幅位图从一个设备场景复制到另一个设备场景。在复制前,语句Picture1.Picture=LoadPicture()不可少,用于设置Picture1的设备场景。GetCursorPos函数用于获取鼠标指针的当前位置。

参考文献

[1](美)Rogers D F著.计算机图形学的算法基础.北京:机械工业出版社,2004-03.

[2]马靖.利用API增强VB的图像处理功能.北京:微计算机信息(测控仪表自动化),2003(9).

图像平滑处理 篇4

电能质量问题引起了供电部门和广大电力用户的普遍重视,目前大多数输配电系统都安装有电能质量监测设备。由于所监测到的相关数据十分庞大,加重了数据存储的负担,也降低了数据的传输效率,因此有必要研究具有高压缩性能的数据压缩方法。至今已有大量的学者对电能质量数据压缩问题进行了研究[1,2,3,4,5,6,7,8,9]。

本文引入数字图像平滑技术,并结合了提升格式的二维小波变换、图像多级树集合分裂SPIHT(Set Partitioning In Hierarchical Tree)编码算法以及DEFLATE编码对电能质量数据进行更有效的压缩。

1 电能质量数据压缩整体方案

本文所提出的电能质量数据压缩整体方案如图1所示。考虑到电能质量信号的周期性特点,为了进一步挖掘这类信号的循环间冗余,首先按整数倍周期将所采集到的一维电能质量原始数据转换为二维矩阵,以信号周期为行、采样点为列进行排列。然后采用数字图像平滑技术对该二维矩阵进行模糊化处理。最后基于提升格式的二维小波变换、图像SPIHT编码以及DEFLATE编码算法进行数据压缩。数据重构则是数据压缩的逆过程,首先对压缩后的数据进行DEFLATE解码、SPIHT解码以及提升格式二维小波反变换,然后再进行逆平滑(清晰化)处理,对逆平滑后的二维数据进行一维转换后即得到重构的一维电能质量数据。

2 图像平滑

图像进行平滑处理后更适合于小波变换编码,更有利于被压缩。本文采用文献[10]所提到的平滑算法,该算法含模糊化以及清晰化2个过程。

模糊化过程:保留维数为[M,N]的图像二维矩阵的第1行和第1列,对其他相邻行列间做如下模糊化运算:

其中,i=2,3,…,M;j=2,3,…,N。经模糊化后相当于用均值代替原来的数值。

清晰化过程:保留维数为[M,N]的待清晰图像二维矩阵的第1行和第1列,对其他相邻行列间做如下清晰化运算:

其中,i=M,M-1,…,2;j=N,N-1,…,2。清晰化过程实际上相当于模糊化过程的逆运算过程。

3 提升格式的二维小波变换

与传统的小波变换相比,提升格式的小波变换具有运算简单、速度快、耗费存储空间少等优点。

本文选用静止图像压缩标准JPEG2000中推荐使用的CDF(9,7)提升小波变换对模糊化后的二维电能质量信号进行分解与重构。CDF(9,7)提升小波变换具有线性相位、消失矩大、能量集中性好等特性,非常适用于图像数据的有损压缩,其提升格式如图2所示[11,12]。

CDF(9,7)提升小波首先将输入x[n]分裂为奇数序列d[n](0)=x[2n+1]与偶数序列c[n](0)=x[2n];然后经过2次预测和更新过程得到预测序列d[n](2)以及更新序列c[n](2);为了便于计算,最后分别对预测和更新序列进行系数缩放得到逼近信号d[n]以及细节信号c[n]。其中,图2中CDF(9,7)提升小波的参数分别为:α=-1.586 134 34,β=-0.052 980 118,γ=0.882 911 076,δ=0.443 506 852,ζ=1.149 604 39。

4 图像SPIHT编码算法

SPIHT算法是一种基于小波域系数零树结构的静态图像压缩方法,采用不重要系数表LIP(List of Insignificant Pixels)、重要系数表LSP(List of Significant Pixels)和不重要集合表LIS(List of Insignificant Sets)来动态控制小波系数的分类扫描和精细扫描过程[13]。

对于节点(i,j),定义O(i,j)为其直系子女的坐标集合,D(i,j)为其直系后代的坐标集合,L(i,j)=D(i,j)-O(i,j)为其非直系后代的坐标集合,H为所有根节点的集合。下面介绍SPIHT编码过程。

a.算法初始化。确定初始量化门限2n,置LSP为空表,将坐标(i,j)H放入LIP,(i,j)H中带有子孙的加入到LIS,并标记为D(i,j)类集合。

b.分类扫描过程。首先扫描LIP,若该像素有效(≥2n),则将其移到LSP并输出其符号位。然后扫描LIS,对于D(i,j)类集合,若其为有效集合则将其分解为(k,l)O(i,j)以及L(i,j),分解后的L(i,j)放入LIS尾部,分解后的每个(k,l)项根据其有效性分别放入LSP或者LIP中;对于L(i,j)类集合,若其为有效集合则将其分解为(k,l)O(i,j),分别形成D(i,j),并放入LIS尾部。

c.细化过程。对LSP中每一项(i,j)(本次扫描产生的除外),输出X(i,j)的第n个最高有效值。

d.量化步长更新过程。n=n-1,返回步骤b进行下一步编码。

文献[14]将SPIHT算法简化为一维算法,结合整数小波变换实现了录波数据压缩,但该方法牺牲了算法性能。本文充分利用SPIHT编码算法的优势,直接使用二维SPIHT编码算法压缩转换后的二维电能质量数据。

5 DEFLATE编码

DEFLATE编码是一种字典型无损数据压缩编码算法,该算法具有良好的压缩性能和速度,在ZIP文件压缩以及PNG图像压缩等领域得到了广泛的应用。

DEFLATE编码同时使用了LZ77与哈夫曼编码算法,其编码过程主要包括2个方面:首先由LZ77编码算法压缩数据,在该过程中采用哈希表来存储字典;然后对LZ77编码后的数据再通过哈夫曼编码进一步进行压缩。

6 数据压缩实验结果及分析

采用压缩比RCR、信噪比RSNR2个指标来衡量压缩算法的性能,分别定义为

其中,Ho表示压缩前信号的数据量,Hn表示压缩后信号的数据量,xo(i)为原始信号,xn(i)为解压缩后的重构信号,N为信号的长度。

用ATP-EMTP仿真一条750 k V传输线的单相接地故障过程(在0.06 s时单相接地,0.14 s时切除故障),信号基波频率选取为50 Hz,信号采样频率为12.8 k Hz,图3给出了B相电压信号uB的波形。

采用本文所提方案压缩该数据,图4表示在不同压缩码率RC下的压缩效果(u′B为图3中电压uB的重构波形,ue为误差信号)。可以看出,压缩效果与压缩码率有很大关系,压缩码率越高,相应的压缩比越低,信噪比越高。因此,可以根据实际需求通过控制压缩码率来调节压缩性能。

采用文献[15]中方法用Matlab软件随机产生以下扰动信号:骤降、骤升、中断、脉冲暂态、谐波、骤降&谐波、骤升&谐波。信号基波频率选取为50 Hz,信号采样频率为12.8 k Hz,持续采样200个周期。在压缩码率为0.5 bit/pel时,对各类电能质量扰动数据进行压缩的性能指标如表1所示。由表1可以看出,经图像平滑处理后,压缩性能得到了较大提高。

为进一步验证本文所提出压缩算法的有效性,以较为复杂的电能质量扰动骤降&谐波为例,分别采用几种不同的电能质量压缩方法对该类信号进行压缩,其结果如图5所示。可以看出,在压缩比一致的情况下,本文算法能达到更大的信噪比,压缩性能更加优越。

7 结论

本文提出并设计了电能质量数据压缩方案,该方案通过二维表示挖掘了电能质量数据的循环间冗余,同时应用数字图像平滑技术对二维转换后的图像矩阵进行平滑处理,并采用基于提升格式的二维小波变换,该变换具有运算速度快、占用内存小、计算简单、逆变换简单等优点,然后基于图像SPIHT编码以及DEFLATE编码算法压缩二维小波变换后的小波系数。该方案具有较好的压缩效果,同时还可以根据实际情况灵活调节压缩性能。仿真实验结果验证了所提方案能有效压缩电能质量数据。

摘要:为满足电能质量数据存储与传输的需要,基于图像平滑算法、二维离散小波变换以及图像多级树集合分裂编码算法提出了一种电能质量数据压缩新方法。将一维电能质量数据转换为二维矩阵以挖掘电能质量数据的循环间冗余性;应用数字图像平滑技术对二维变换后所得到的电能质量图像矩阵进行平滑处理以有利于二维小波变换编码;结合二维离散小波变换、图像多级树集合分裂编码以及DEFLATE编码算法对电能质量数据进行压缩。仿真实验结果表明,相对现有的电能质量数据压缩方法,所提出的方案不仅能更有效地压缩电能质量数据(同等压缩比的情况下,信噪比更高),而且还可以根据实际需求通过对压缩码率的控制灵活调节电能质量数据压缩性能。

图像平滑处理 篇5

很多在计算图像学中的应用都需要将图像在不同的尺度上进行分解,传统方法使用线性或者非线性的方法去进行强边界的识别。文献[1]使用了线性滤波器进行图像分解,这些分解会在图像强边界处产生强烈的人工反转痕迹(光晕)。在使用了非线性滤波器之后,这种痕迹被减弱了,进行图像多尺度分解通常选用的非线性滤波器为双边滤波器[2]。文献[3]使用双边滤波器将图像分解成低对比度和高对比度的细节,操作不同尺度上的图层以达到增强图像的整体效果。

由于双边滤波器的保留边界和去噪声的能力是相互对立的,文献[4]提出了加权最小二乘算法WLS。文献[4]认为滤波方法最终要达到的目的应是输出图像与输入图像近似相同;在图像平滑区域应尽量地平滑图像,在图像具有强边界处应该尽量保持图像原有的样式。WLS的最大的两个问题是不能有效地提取图像中对比度较大的纹理和渐进化图像平滑时图像所有像素值会趋近于整个图像的平均亮度。文献[5]提出了通过求局部极值的包络线的方法进行信号平滑的BEMD方法,但是文中只对一维信号的平滑进行了讨论。文献[6]提出了使用局部极值的方法,通过类似于加权平均找出极值之间像素的近似值,再通过优化方法局部极值下所对应的图像。

本文提出一种新颖的平滑算法,算法计算输入图像局部极值的插值图像以达到图像平滑的目的,算法流程图如图1所示。这种技术能有效地平滑图像中高对比度的纹理,同时可以保留图像的显著边界。通过迭代地使用这种平滑算法,我们可以对图像进行多尺度分解,将图像分解成不同尺度的图像层。与现有的保留边界的多尺度分解算法对比,我们的算法高效地将高对比度纹理与强边界区分开。

1 保边局部极值图像平滑算法

现有方法对于图像强边界的定义通常是图像梯度变化较大处或者图像像素值变化较大处,定义何种变化算“大”,通常是由应用本身来定义。这种定义强边界在使用现有算法提取图像的较细节且具有高对比的纹理时就显现出较差的效果。

进行保边平滑的目的是提取图像中除强边界之外的图像细节部分与对比度较大的图像纹理,因为在图像中强边界与纹理的对比度都比较大,所以该算法有很好的辨识图像纹理的能力,原因主要是我们采用了局部极值。

比较好的保留边界的滤波方法都是基于某种假设。双边滤波器把图像中低对比度的地方认为是图像的细节,高对比度的地方认为是图像的强边界。WLS滤波器认为梯度值比较小的地方是图像细节,图像边界处梯度比较大。BEMD滤波方法认为图像低尺度图像振荡为图像细节。我们的方法与BEMD滤波方法一样,同样认为图像低尺度图像振荡为图像细节。当时对于边界有更深刻的定义,我们认为在与相邻局部极值具有较大方差的地方为图像边界。表1给出了几种保留边界的平滑方法的比较。

1.1 局部极值的选取

这个算法中,需要选取局部的极大值以及局部的极小值。选取像素p,及以它为中心的半径为r的局部正方形窗口ω,窗口像素个数为(2r+1)2。若整个窗口中最多有2r2+2r个元素的像素值大于p的像素值,则p为局部的极大值;若整个窗口中最多有2r2+2r个元素像素值小于p的像素值,则为局部的极小值。

1.2 局部极值插值法

首先要获得极值的包络线,在这里我们使用一种插值的办法。对于极大值包络线图像umax的表达式为:

umax(p)=m(p)·(1-maskmax(p))+g(pmaskmax(p) (1)

m(p)=qΩ(p)ω(q,p)maskmin(q)g(q)qΩ(p)ω(q,p)maskmin(q) (2)

其中ω(q,p)是进行插值的权值,表达式如下:

ω(q,p)=exp(-(g(p)-g(q))22σ2)p-q (3)

其中‖·‖表示二范数;σ为输入参数,本文实验中使用0.1。maskmax(q)为原图像的局部极大值的表示:

式(2)中的qΩ(p)ω(q,p)maskmax(q)g(q)qΩ(p)ω(q,p)maskmax(q)是一种类似于加权求均值的方法,对于一个非局部极值的像素值由在窗口中的局部极值得到。为了保证图像在平滑之后仍然要保持基本的视觉效果,可得:

若像素p为局部极大值,则:

umax(p)=g(p) (5)

若像素p为不是局部极大值,则该点的像素值由在窗口中的局部极值插值得到:

umax(p)=qΩ(p)ω(q,p)maskmax(q)g(q)qΩ(p)ω(q,p)maskmax(q) (6)

对于极小值包络线图像umin的表达式为:

umin(p)=n(p)·(1-maskmin(p))+g(pmaskmin(p) (7)

n(p)=qΩ(p)ω(q,p)maskmin(q)g(q)qΩ(p)ω(q,p)maskmin(q) (8)

maskmin(q)为原图像的局部极大值的标示:

其中Ω(p)为像素p的邻域。因为整个计算umin和umax的过程需要Ω(p)中的局部极值的值,所以Ω(p)中必须要有一定数量的局部极值。首先将Ω(p)分为如图2中的四个区域,窗口大小初始值为d=1+{r2}×2,{x}表示大于或者等于x的最小整数。在计算umin和umax过程中,为了尽量插值完全,区域1,2,3,4中必须都具有局部极值,若Ω(p)不满足该条件,Ω(p)大小应变为di=d+2i,直到Ω(p)满足该条件。

最终输出图像为局部最大极值与局部最小极值插图像的均值:

u=12(umin+umax) (10)

局部极值插值的平滑算法伪代码如下。

算法:基于局部极值插值的平滑算法LocalExtrm(g,u,r)

输入:图像g

输出:图像u

1. 选定半径为r的窗口ω1

2. 以窗口ω1计算图像g的局部极大值标示maskmax和局部极小值标示maskmin

3. for 图像所有像素点g(x,y) do

4. 选定半径为{r2}的窗口ω2

5. while 窗口ω2不满足极值分布

6. 增大窗口ω2的半径

7. 以窗口ω2计算局部极大值图像像素值umax(x,y)

8. End for

9. for 图像所有像素点g(x,y) do

10. 选定半径为{r2}的窗口ω3

11. while 窗口ω3不满足极值分布

12. 增大窗口ω3的半径

13. 以窗口ω3计算局部极小值图像像素值umin(x,y)

14. End for

15. 计算输出图像u

1.3 多尺度分解

假设我们将图片分解成k+1层,让u1,…,uk表示逐渐分解出来的基层,uk就是最后的输出图片b,那么可以得到这样的关系式:

di=ui-1-uii=1,2,…,ku0=g (11)

由式(11)得到输入图像g和输出图像b的关系:

g=b+i=1kdi (12)

产生不同尺度上的图像ui使用的滤波器参数不一样,要获得越高尺度的平滑图像,就应该选取能使图像更加平滑的参数ciλ。获得不同尺度上的图像ui有两种方式:第一种利用原输入图像平滑获得,即:

ui+1=Fciλ(g) (13)

第二种利用以平滑的图像获得更高尺度的平滑图像:

ui+1=Fciλ(ui) (14)

本算法使用的是第二种方法。平滑参数设定为获取局部极值时正方形窗口ω的半径。

2 实验结果

本文使用OpenCV类库作为图形读取接口,编程环境为VS2008。所有实验结果都是在CPU为Intel Core2 Duo P8700(2.53G,2.53G)机器上测试。

首先来看一下本文方法与双边滤波器的比较,如图3所示,图3(a)是输入图像(大小为512×512),图3(b)是经过本文方法平滑的图像(r=2),图3(c)是使用双边滤波器[2]平滑的图像(sigma_d=2,sigma_r=0.1),图中可以看出,本文方法在和双边滤波法桌子阴影处平滑效果差不多时,能较好地去除窗帘以及衣服上的纹理图案。

图4(a)是输入图像(大小为512×512),图4(b)是WLS方法(α=1.2,λ=1.2),图4(c)是本文的平滑方法(r=2)。从图中可以看出,WLS的保边效果是比较好的,但是本文方法更加出色。如书架的阴影以及桌子的阴影处;对于围巾上的纹理,WLS方法并没有很好地平滑。WLS方法是一种基于最优化算法的方法,可以看出平滑结果中所有像素值趋近于整幅图像像素平均值,如果进行多次图像平滑这种现象更明显,这个是WLS方法比较严重的问题。

再比较一下本文与文献[6]中的方法。如图5所示,图5(a)是输入图像(大小为512×512),图5(b)是文献[6]方法,图5(c)是使用本文的平滑方法(r=2,四次平滑)。从图中可以看出,由于文献[6]选择了插值优化的算法,虽然能很好保留边界,但是经过多次平滑后,可以明显看出在一些边界处出现了“锯齿”的现象,在一些阴影处,如书架的阴影处出现了边界的丢失。本文在多次平滑之后仍能得到较好的结果,边界较明显,如书架阴影处、桌子阴影处等。

图6为本文方法平滑高对比度纹理且同时保留强边界的结果,图6(a)是输入图像(大小为512×512),图6(b)是本文方法平滑之后的输出图像(r=2,迭代3次),图6(c)是分解出的细节层,图6(d)是图6(a)的第225行像素的像素值,图6(e)是图6(b)的第225行像素的像素值, 图6(f)是图6(c)的第225行像素的像素值。从实验结果看出本文方法能高效地提取图像的高对比度纹理,且同时保留图像强边界。迭代3次之后并没有出现WLS方法中所有像素值与原图像差别变大的现象。从图6(b)看出,此方法能有效地保留强边界的信息,如书架的阴影部分及桌子的阴影部分。

图7是双边滤波器和本文方法在高动态范围图像色调映射方面的效果比较。实验原图为高动态图像,大小为656×1 000。图7(a)是使用双边滤波器进行色调映射的效果图。图7(c)是图7(a)的近景图。图7(b)是使用本文算法进行色调映射的效果图。图7(d)是图7(b)的近景图。图7(c)中台灯的周围出现明显的人工反转痕迹(光晕),同时丢失了一些窗格。图7(b)的高动态范围图像色调映射效果较优秀。

图8是使用本文方法进行彩色图像细节增强的实验结果。原图出自文献[4],大小为800×533。

摘要:提出一种新颖的基于局部极值的强边界与高对比度纹理的定义。使用这个定义提出一种保留边界的平滑算法,通过将算法迭代运用在基层上面进行多尺度图像分解。同时算法可以抽取图像高对比度纹理,但同时可以保留图像的强边界。该方法可以高效地使用在多尺度图像分解的各种应用中,如高动态范围图像的色调映射、图像细节增强、图像去噪。

关键词:非线性滤波器,保留边界,图像分解,高动态范围图像,局部极值

参考文献

[1]Rahman U,Woodell A.A multi-scale retinex for bridging the gap be-tween color images and the human observation of scenes[J].IEEETransactions on Image Processing:Special Issue on Color Processing,1997,6(7):965-976.

[2]Tomasi C,Manduchi R.Bilateral filtering for gray and color images[C]//Proceedings of the 6th Conference International Conference ofComputer Vision(ICCV 98).Bombay,India:IEEE Computer Socie-ty,1998.

[3]Bae S,Paris S,Durand F.Two-scale tone management for photograph-ic look[J].ACM Transactions on Graphics 2006,25(3):637-645.

[4]Farbman Z,Fattal R,Lischinski D,et al.Edge-preserving decompo-sitions for multi-scale tone and detail manipulation[C]//Proceedingsof SIGGRAPH 2008.Los Angeles,USA:ACM Press,2008.

[5]Huang.The empirical mode decomposition and the Hilbert spectrumfor nonlinear and non-stationary time series analysis[C]//Proceedingsof the Royal Society A:Mathematical,Physical and Engineering Sci-ences,1998,454:903-995.

邻域平均法对矢量图平滑处理 篇6

图像是人类获取和交换信息的主要来源。数字图像技术已广泛应用于工业、医疗、航天航空和军事等各个领域, 在国民经济建设中的作用也越来越大, 图像处理则显得非常重要, 常用的图像处理有图像的缩放、图像去噪[1]、图像的增强等, 这一般都是对位图而言的, 而矢量图也在工程制图等很多领域都有很广泛的应用, 很多地方需要对矢量图进行处理。在对矢量图进行缩放时, 一定角度上的线条、矩形会产生一定程度上的锯齿。邻域平均法处理图像产生的边缘模糊则正好能使图像的锯齿消除, 从而在视觉上到达平滑。

1 矢量图

矢量图是使用直线和曲线来描述图形的, 这些图形的元素是一些点、线、矩形、多边形、圆和弧线等, 它们都是通过数学公式计算获得的[2]。由于矢量图形可通过公式计算获得, 所以矢量图形文件体积一般较小。矢量图形最大的优点是无论放大、缩小或旋转等都不会失真。虽然矢量图形放大或者缩小不会失真, 但对于由线条、矩形组成的矢量图, 在缩放时, 除水平方向、垂直方向、与坐标成45°, 135°, 225°, 315°的外线条可以明显看到很多锯齿。

2 邻域平均法

邻域平均法的平滑滤波[3]是将原图中一个像素的灰度值与它周围邻近的像素的灰度值相加, 然后将求得的平均值 (除以9) 作为新图中该像素的灰度值。它采用模板计算的思想, 具体应用的模板为高斯模板[4]。模板操作实现了一种邻域运算, 即某个像素点的结果不仅与该像素灰度有关, 而且与其邻域点的像素值有关。模板运算在数学中的描述就是卷积运算[5], 其数学表达式为:

g (i, j) =1Νi, j=sF (i, j) =1Νi, j=sf (i, j) +1Νi, j=sh (i, j)

式中:f (i, j) 为图像信号;h (i, j) 为噪声;F (i, j) 为含有噪声的图片信号, F (i, j) =f (i, j) +h (i, j) ;g (i, j) 为进行邻域处理后的图像。

f (i, j) 像素与周围邻域之间的相互关系如表1所示。在f (i, j) 上按行 (或) 按列对每个像素选取一定尺度的邻域[6], 并用邻域中邻近像素的平均灰度来置换这一像素值, 对全部像素处理后可得g (i, j) 。

用邻域平均法处理图像时会在边缘处产生一定程度上的模糊, 产生的模糊效应与应用的高斯模板有很大的关系。高斯模板的模板越大, 边缘处产生的模糊越厉害, 且计算量也随之加大。对于邻域可以有不同高斯模板的选取方式, 如下所示为4个3×3高斯模板。

15[010111010]18[111101111]19[111111111]110[111121111]

为了保持平滑处理后图像的平均值不变, 模板内各元素之和为1。在用程序实现时, 设置了用户设定功能, 即用户依据自身的需要进行模板的设定。可以设定模板的大小、元素的中心位置以及模板的系数。这一功能十分方便, 也相当灵活。利用它可完成图像的锐化工作, 细化操作, 甚至图像的边缘检测[7]。

3 邻域平均法对矢量图处理

正是由于邻域平均法的边缘能够产生模糊, 对查看放大后有锯齿的矢量图进行处理后, 则刚好可以使矢量图边缘模糊化, 以此来实现消除锯齿, 达到查看的矢量图缩放平滑的目的。

3.1 矢量图处理

C++builder虽然可以对矢量图进行操作, 但其中很多的内置函数与类都不能直接用于对矢量图的处理。C++builder是基于对位图处理的软件, 故对矢量图进行平滑放大的具体实现步骤如下:

(1) 由于矢量图放大后不失真, 故先对矢量图进行放大;

(2) 用Draw函数重画放大后的矢量图, 并保存成位图格式[8];

(3) 重新加载保存为位图格式的图;

(4) 用邻域平均法对位图进行处理;

(5) 查看完毕后, 用DeleteFile函数删除保存的位图[9]。

3.2 改进邻域平均法

简单的邻域平均法虽然能够在一定程度上消除锯齿, 但却带来了整个图像的模糊, 使图像清晰度降低。然而超限邻域平均法则可以使整个图像模糊很小, 保持图像清晰。阈值的邻域平均法以某个灰度值T作为阈值。如果某个像素的灰度大于其邻近像素的平均值, 并超过阈值, 则使用平均灰度置换这个像素灰度[10], 其数学表达式如下:

g (i, j) ={f¯ (i, j) , f¯ (i, j) =f (i, j) -f¯ (i, j) >Τf (i, j) ,

若某点值与其邻域平均值相差超过T, 用其平均值替代, 进行平均;否则还保留原值, 不进行平均处理。

为了很好地控制图像的清晰度与边缘的模糊效果, 另外设置最大像素点值pmax与最小像素点值pmin。当经过处理后的像素点值大于最小设定的像素点值时, 像素点值等于其值减去最小像素点值;当像素点值大于设定的最大像素点值时, 像素点值等于255;当像素点值小于设定的最小像素点值时, 像素点值等于0。即当像素点值大于最大像素点值时, 使这个地方的像素点变成白色;当像素点值小于最小像素点值时, 使这些地方的像素点变成黑色。其他的则减去最小像素点值。

4 程序核心代码

程序核心代码如下:

5 结 果

实验结果如图1, 图2所示。

由图1与图2可以清楚的看到, 经过处理后的图像很光滑, 且保持了图像的清晰度。

6 结 语

虽然用邻域平均法处理矢量图可以在查看时对放大缩小的图像进行平滑处理, 消除锯齿, 但还不能保存得到不失真的矢量图, 现今也存在很多直接对矢量图进行放大缩小且保存矢量图的软件, 例如Photoshop, Coreldrew, Flash等。因此, 今后将继续研究, 希望能够达到这些软件的效果。

参考文献

[1]马莉, 郑世宝, 刘成国.一种基于小波变换的图像去噪算法[J].现代电子技术, 2008, 31 (18) :160-162.

[2]任石, 秦茂玲, 刘弘.矢量图数字水印技术[J].计算机应用研究, 2007, 30 (8) :22-24.

[3]谢凤英, 赵丹培.Visual C++数字图像处理[M].北京:电子工业出版社, 2008.

[4]杨乐.图像增强算法及其实现[J].现代电子技术, 2008, 31 (8) :133-134.

[5]曾德藩.卷积在图像平滑中的应用[J].枣庄学院学报, 2007, 27 (5) :64-66.

[6]荣莹.用C++Builder实现数字图像的平滑处理[J].信息技术, 2005 (5) :85-87.

[7]王保平, 刘开虎, 张家田, 等.一种基于模糊熵和FKCN的边缘检测方法[J].计算机学报, 2006, 29 (4) :664-669.

[8]蒙祖强, 龚涛.C++Builder程序员成长攻略[M].北京:中国水利水电出版社, 2007.

[9]刘超, 唐彬.C++Builder案例开发集锦[M].北京:电子工业出版社, 2005.

上一篇:冲刷性能下一篇:一个误区