利用边缘检测算法的梯田信息提取

1 边缘检测简介 边缘检测不仅是 图像处理 方面一个基本问题,同时也是 计算机视觉 领域的一个基本的概念。其主要是对数字图像中亮度变化明显的点进行标识。一般情况下,图像其变化的属性是对其重要事件及其相应变化的一种反应。其变化主要包括四个方面的内容

1 边缘检测简介

        边缘检测不仅是图像处理方面一个基本问题,同时也是计算机视觉领域的一个基本的概念。其主要是对数字图像中亮度变化明显的点进行标识。一般情况下,图像其变化的属性是对其重要事件及其相应变化的一种反应。其变化主要包括四个方面的内容,具体如下:深度上的间断、表面方向上的间断、物质的属性变化以及场景照明状态的变化。因此,边缘检测是不仅仅是图像处理方面一个非常重要的领域,也是计算机视觉方面一个不容忽视的关键因素,尤其是特征提取方面发挥了极为重要的作用。
        图像边缘检测很大程度上控制了数据量,同时可以删除一些与之无关的信息,只对图像主题的结构属性进行保留。边缘检测的方法多种多样,基本上可以将其划分为两大类:一种是基于查找的,另一种则是基于零穿越的。第一种方法对其边界的检测主要是通过对图像进行一阶求导,得出最大和最小值这样的方法进行的,一般边界都是定位在梯度最大的方向。第二种方法的边界通过对图像二阶求导,从其零穿越中进行寻找的,一般情况下都是非线性差分表示的或者是Laplacian的过零点。

2自适应中值滤波方法

        自适应中值滤波基本上包括三个步骤,如下::
第一,对图像每个区域均进行相关的噪声检测;
第二,按照不同区域受噪声影响的实际状况,具体调整其滤波窗口的尺寸;
第三,对检测出的噪声点进行滤波处理。

3 Sobel算法

  Sobel(索贝尔)算子:
         索贝尔算子(Sobel operator)主要用作边缘检测,是图像处理算法中的最常用的一种。在技术层面上来看,该算子是一离散性的差分算子,对图像亮度函数进行一系列运算,得出其梯度或者是近似值。此算子适用于在图像区域中的任何一点,经过相关运算后会得出相应的梯度矢量或者是法矢量。对于梯度的幅值来说,抑制其非极大值,如果一个像素点的梯度幅值不小于沿梯度方向上两个相邻像素点的值,则认定该像素点为可能的边缘点 。需要注意的是,该梯度方向指的是平行于H(x,y)的方向。
        这种算子一共包括了横向和纵向两种运算模板,均为3×3的矩阵。如果采用Sobel算子对图像的边缘进行检测,需要采用水平算子以及垂直算子分别对图像进行相关运算得出其平面卷积 ,也就是其横向、纵向上的两个亮度差分近似值。假设用A表示其原始图像,Gx及Gy依次表示经横向及纵向边缘检测的图像,具体计算公式如下所示:
                          

Gx = (-1)*f(x-1,y-1)+0*f(x,y-1)+1*f(x+1,y-1)+(-2)*f(x-1,y)+0*f(x,y)+2*f(x+1,y)+(-1)*f(x-1,y+1)+0*f(x,y+1)+1*f(x+1,y+1)
= [f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)]Gy
= 1*f(x-1,y-1)+2*f(x,y-1)+1*f(x+1,y-1)+0*f(x-1,y)+0*f(x,y)+0*f(x+1,y)+
(-1)*f(x-1,y+1)+(-2)*f(x,y+1)+(-1)*f(x+1,y+1)
= [f(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1)]-[f(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1)]
 

        在现实的边沿检测过程中,Sobel 算子是一种使用率极高的模板。Sobel 算子有两个:一个主要负责水平边沿的检测,而另一个则主要负责其垂直边沿的检测。Sobel算子较“和”的一大优势就是,其在象素位置的影响这一方面做了加权处理,所以能够达到更好的效果。
        因为Sobel算子实际上是一种滤波算子,如果将其用于边缘的提取的话,是可以通过快速卷积函数进行相关运算的。其不仅操作简单,且能得到很好的效果,所以应用范围非常广。Sobel算子也有一个小小的缺陷,就是其没有严格地区分图像的主体和背景也并没有对图像灰度的相关处理,也就是说并严格地按照人的生理特征对其进行模拟,所以在某些情况下,其最终提取的图像轮廓有不能满足实际的需求。图像与背景不同的部分是图像处理一个关键所在,而Sobel算子并没有对其进行区分。在此基础上介绍下面的阈值化轮廓提取算法。
 利用边缘检测算法的梯田信息提取

 Canny算法 

 Canny算子:

        拉普拉算子需要对其进行2次微分,是一个2阶微分的算子,这样可以确保其精度。但是该算法对于噪声太过敏感,所以在实际的操作过程中使用频率并不高。最常用的方法应该是索贝尔(Sobel)算子这个一阶算子,其不仅操作简单而且效果明显,不过其最终提取出的边缘是比较粗的,需要进一步对其进行细化处理。在具体的使用过程中,坎尼(Canny)算子需要提供给一些相关参数,从而控制该算法的性能。关于不同的图像、边缘提取的不同要求,该算子都应该提供不同的参数,以确保运行的最佳效果。不过,该算子的运算方法也有其相应的模板,模板的大小取决于其提供的参数。其算子的标准的大小大概为17*17。由于使用标准算子运行速度非常慢,所以可按照算子的可分离性采取快速算法,加快运行速度。另外,由于坎尼(Canny)算子的2值化特点,其还具有一定的智能性。
        对于RGB图像来说,其边缘计算在整个图像中的方向是一致的。如果仅仅对其进行边缘的检测,单独分量方法一般情况下就可以达到相应的效果。但是,在对准确度要求较高的情况下,这个时候就不能满足其需求,需要一个全新的定义。
        Canny边缘检测算法通常有四个步骤:
第一,选用高斯滤波器将图象平滑地输入其中;
第二,通过对其进行一阶偏导的运算,再由其限差分通过一系列运算后,得出最终的梯度幅值以及方向(角度)图像;
第三,对于梯度幅值图像来说,对其采取非极大值抑制措施;
第四,通过双阈值算法检测其边缘并将其连接。
        坎尼方法有三个基本的原则:
1.低错误率。需要找到全部的边缘,同时不允许伪响应的存在。换而言之,所检测到的边缘一定要是可能的真实边缘。
2.边缘点容易定位。对于已经定位边缘必须最大限度地接近真实边缘。另外,通过检测并且已标记为边缘的点和真实边缘的中心之间的距离应该最小。
3.对于边缘点单一响应。如果检测器检测到到的是真实的边缘点,那么仅会应返回一个点。这表示单一边缘点的位置有且仅有一个,检测器就不应该检测到多个边缘像素。
        实质上,坎尼是从数学角度阐述了以上几个原则,且尝试得到相关表达式的最佳结果。一般情况下,求得一个符合该需求且相对严谨的解是相当困难的。但是,对由加性高斯白噪声污染进行相应的分析以及运算会得到一个如下的结论,即其中一个近似度最高的值是高斯一阶导数:

通过环形二维高斯函数对图像进行平滑处理,经过系列的计算可得其相应的梯度,然后再通过幅度和方向确定该区域每一点的边缘强度及其方向。令 代表输入图像, 则代表高斯函数:

利用 和 的卷积形成一幅流畅的图像 :

通过该公式可以计算其梯度和方向:
和  其中, , 。
任何滤波器模板都可以通过相关计算最终得到 和 ,通过 的高斯模板来实现, 和 ,并算出其具体的图像尺寸。
通过Canny算法提取出来的图像边缘能满足视觉的基本要求,但还是远不能达到单像素级别,特别是拐角点处会出现一些多对一响应的现象。为了达到单像素级别且提取出精细的边缘,引入数学形态学算法。

   4.4 自适应中值滤波

图像实际上就是一个信息的来源,通过对图像的处理,人们能够了解更多该信息的内涵。不过,在图像实际的检测过程中,会其难免会受到噪声的干扰。通过对有关资料的查阅,中值滤波器在对付脉冲噪声方面尤其巨大的优势,属于非线性的一种滤波器。本文最终采用了一种能够在滤波过程中达到自适应程度的中值滤波方法,这就完美地弥补了其造成图像边缘模糊的这一缺陷。最后,利用matlab软件进行一系列的仿真测试,使其得到印证。

原创文章,作者:写文章小能手,如若转载,请注明出处:https://www.sbvv.cn/chachong/703.html,文章版权申述

(0)
上一篇 2017年10月11日 上午6:49
下一篇 2017年10月12日 上午12:24

相关推荐

My title page contents