模式识别大作业 下载本文

模式识别大作业

引言:

转眼之间,研一就结束了。这学期的模式识别课也接近了尾声。我本科是机械专业,编程和算法的理解能力比较薄弱。所以虽然这学期老师上课上的很精彩,但是这学期的模式识别课上的感觉还是有点吃力。不过这学期也加强了编程的练习。这次的作业花了很久的时间,因为平时自己的方向是主要是图像降噪,自己在看这一块图像降噪论文的时候感觉和模式识别的方向结合的比较少。我看了这方面的模式识别和图像降噪结合的论文,发现也比较少。在思考的过程中,我想到了聚类的方法。包括K均值和C均值等等。因为之前学过K均值,于是就选择了K均值的聚类方法。然后用到了均值滤波和自适应滤波进行处理。

正文:

k-means 聚类算法的工作过程说明如下:首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数。 k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。 k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。均值滤波是常用的非线性滤波方法 ,也是图像处理技术中最常用的预处理技术。它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘。

均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个象素,构成一个

滤波模板,即去掉目标象素本身)。再用模板中的全体像素的平均值来代替原来像素值。即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度个g(x,y),即个g(x,y)=1/m ∑f(x,y) m为该模板中包含当前像素在内的像素总个数。均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。

自适应滤波器具有在未知环境下良好运行并跟踪时变输入统计量的能力,使得自适应滤波器成为信号处理和自动控制应用的强有力手段。在解决线性滤波问题的统计方法中,通常假设已知有用信号及其附加噪声的某些统计参数(例如,均值和自相关函数),而且需要设计含噪数据作为其输入的线性滤波器,使得根据某种统计准则噪声对滤波器的影响最小。实现该滤波器优化问题的一个有用方法是使误差信号(定义为期望响应与滤波器实际输出之差)的均方值最小化。对于平稳输入,通常采用所谓维纳滤波器(Wiener filter)的解决方案。该滤波器在均方误差意义上是最优的。误差信号均方值相对于滤波器可调参数的曲线通常称为误差性能曲面。该曲面的极小点即为维纳解。滤波算法的运行涉及两个基本过程:(1)滤波过程,用来对一系列的输入数据产生输出响应;(2)自适应过程,其目的是提供滤波过程中可调参数自适应控制的一种机制(算法)。这两个过程相互影响地工作。滤波过程结构的选择总体上对算法的运行具有深刻的影响。

我的想法是针对一副噪声图片,可以首先进行K均值聚类,然后再进行去噪。然后我依据这个思路进行了编程。首先我将图像lena图片加上了椒盐噪声,然后对噪声图片进行了K均值的聚类。聚类后的图像先进行了加法算法叠加求平均来去噪。然后进行了算术均值滤波和自适应滤波。最后对得到的图像进行灰度增强,得到最终的结果图。在视觉效果上,的确去除了噪声,同时运算速度比较快, 基本在5秒左右,但同时也丢失了一些原本的组织结构。我将最后的结果图和噪声图做了一次差值,发现的确噪声随着一部分图像原来固有的结构被去除了。接下来可以思考可以怎样在去除噪声的同时尽可能多的保留图片的原始结构。

以下是运行过程的结果显示。