《滤波和边缘检测》由会员分享,可在线阅读,更多相关《滤波和边缘检测(17页珍藏版)》请在金锄头文库上搜索。
1、OPENCV入门学习,滤波与边缘检测,学习动机,想深入了解图像处理,源于一天晚上,用手机拍到了一张含有大量噪点的电视塔照片。想通过学习并运用图像处理相关知识,将图片中的噪点去除。,照片中有大量的噪点,噪声对人的影响可以理解为“ 妨碍人们感觉器官对所接收的信源信息理解的因素”。而图像中各种妨碍人们对其信息接受的因素即可称为图像噪声 。常见的图像噪声有:高斯噪声,椒盐噪声,瑞利噪声,伽马噪声,指数分布噪声和均匀分布噪声等。,所谓高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。一个高斯随机变量z的PDF可表示为: 其中z代表 灰度,u是z的均值, 是z的标准差。高斯噪声的灰度值多集
2、中在均值附近。,PDF=概率分布函数读sigma,椒盐噪声是指两种噪声,一种是盐噪声(salt noise),另一种是胡椒噪声(pepper noise)。盐=白色,椒=黑色。前者是高灰度噪声,后者属于低灰度噪声。一般两种噪声同时出现,呈现在图像上就是黑白杂点。,常见的去噪方法有:方框滤波,均值滤波,高斯滤波,中值滤波和双边滤波。我们主要介绍一下高斯滤波和中值滤波,并分别用这两种方法对含有高斯噪声和椒盐噪声的图像进行处理。,原图,高斯噪声,高斯滤波,高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值
3、,都由其本身和邻域内的其他像素值经过加权平均后得到。,33高斯核,椒盐噪声,中值滤波,中值滤波(Median filter)是一种典型的非线性滤波技术,基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值,该方法在去除脉冲噪声、椒盐噪声的同时又能保留图像边缘细节。,对照片进行高斯滤波和中值滤波后发现,效果都不是太理想,可能是没有弄清楚噪点的噪声类型,没有使用正确的处理方法来进行图像处理。,图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。边缘检测常用的方法有:Canny算子,Sobel
4、算子,Laplace算子以及Scharr滤波器等。这里主要介绍一下Canny算子。,Canny边缘检测算子是John F.Canny于 1986 年开发出来的一个多级边缘检测算法,被很多人推崇为当今最优的边缘检测的算法。,边缘检测的一般步骤包括:,1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。2)增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将图像灰度点邻域强度值有显著变化的点凸显出来。在具体编程实现时,可通过计算梯度幅值来确定。3)检测:经过增强的图像,往往邻域中有很多点的梯度值比较
5、大,而在特定的应用中,这些点并不是我们要找的边缘点,所以应该采用某种方法来对这些点进行取舍。实际工程中,常用的方法是通过阈值化方法来检测。,Canny边缘检测算法可以分为以下5个步骤:1.应用高斯滤波来平滑图像(目的是去除噪声)2.找寻图像的强度梯度(由Sobel算子来获得)3.应用非最大抑制技术来消除边误检4.应用双阈值的方法来决定可能的边界5.利用滞后技术来跟踪边界,下面介绍一下如何计算图像的强度梯度:Sobel算子:,注:可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导。对于数字图像,可以利用差分方程对X和Y方向上的二阶偏导数进行近似。,上式三个矩阵分别为该算子的x向卷
6、积模板、y向卷积模板以及待处理点的邻域点标记矩阵,据此可用数学公式表达其每个点的梯度幅值为:,在Canny算法中,非极大值抑制是进行边缘检测的重要步骤,通俗意义上是指寻找像素点局部最大值,将非极大值点所对应的灰度值置为0,这样可以剔除掉一大部分非边缘的点。,完成非极大值抑制后,会得到一个二值图像,这样一个检测结果还是包含了很多由噪声及其他原因造成的假边缘。因此还需要进一步的处理。,非极大值抑制原理,最后一步,Canny 使用了滞后阈值,滞后阈值需要两个阈值(高阈值和低阈值):.如果某一像素位置的幅值超过高阈值, 该像素被保留为边缘像素。.如果某一像素位置的幅值小于低阈值, 该像素被排除。.如果某一像素位置的幅值在两个阈值之间,该像素仅仅在连接到一个高于高阈值的像素时被保留。(把不闭合的边缘链接成轮廓),效果还是不错的!,谢谢观赏,Make Presentation much more fun,WPS官方微博kingsoftwps,