使用DBSCAN算法探测点阵图中的噪点
2017-09-29王顺然
王顺然
摘要 本文展示了一种在将图片根据颜色数值进行分割之后,使用DBSCAN算法进行降噪的方法。本文只讨论在点阵图的情况下的处理方法,矢量图并不适用。
关键词 DBSCAN算法;探测点;高斯噪点
中图分类号 U2 文献标识码 A 文章编号2095—6363(2016)13—0002—01
数字照片含有确定行数与列数的像素。像素是点图中最小的基础单位,包含着表示该点像素颜色或者亮度的数值。在一张数字照片中,相似的像素会聚集。这也就意味着,如果有一个像素看起来明显与附近其他的像素不同,即该像素点的色度值(Grey value或者RGB)与周围的点明显不同,这个像素点很有可能被识别为一个噪点。现在已经有很多降噪器(noise deduction filter)的方法被发明了出来,比如说,中值降噪器(median filter),会将图片中的每个像素点用附近九个像素数值的中位数来替换原本的数值。不同的降噪器可以用来处理不同的图片。但是绝大多数降噪器会移除部分图片中的信息。
为了尽量避免图片中的部分信息被移除,本文会提供一种探测图像噪点的方法,用此方法先来探测噪点,之后可以用降噪器来对已经探测出的噪点进行处理,来尽量避免图片信息的丢失。
1实验设计
为了能够将数值相似的像素进行聚类,我们要采取的方法就是将图像根据原本像素的数值进行分割(image segmentation),而相对孤立的点则意味着该点与周围的点的数值存在明显不同。所以,出现在我们的聚类算法中的噪点,就可以被我们判断为噪点。在本文中,我们将会用一种对数值进行分割的最简单的方法,使用临界值进行分割(thresholding)。这种方法是一种古老、简单并且受歡迎的对图像进行分割的方法。
DBSCAN算法在1996年被Martin Ester,Hans Peter Kriegel,Jrg Sander和Xiaowei Xu。我们使用这种算法的主要目的是这种方法是一种基于密度的聚类算法。在聚集中的像素的密度要大于噪点中像素的密度。并且DBSCAN算法并不像kmeans算法一样需要提前给出聚集数量作为前提条件,而且可以对于任何形状的点集进行聚类。它还可以对于一个点集外环绕但并不连接的另外一个点集进行聚类。DBSCAN需要两个自定义的参数:扫描半径(eps)和最小包含的点数(minPts)。随机选取一个未被访问(unvisited)的点开始,找出与其距离在eps之内(包括eps)的所有像素点。如果附近点的数量≥最小包含点数(minPts),则当前点与其附近像素点形成一个簇(cluster),并且出发点被标记为己访问(visited)。然后,以同样的方法处理该簇内所有没有被标记为已访问(visited)的点,扩展该簇。如果附近点的数量<最小包含点数(minPts),则该点暂时被标记作为噪点。如果簇充分地被扩展,即簇内的所有点被标记为已访问(visited),然后继续使用DBSCAN算法去处理未被访问的其他簇。
2实验
高斯噪点。高斯噪点指的是一种功率谱函数是常数,且幅度服从高斯分布,即正态分布的噪声信号。因其可加性、幅度服从正态分布且功率谱函数是常数命名。
3结论
从实验结果中可以发现,我们的算法成功识别出来了图像分割后大多数的偏离值outlier,证明了本算法能够用来探测图像噪点。endprint