• Sobel边缘检测(1)


    Sobel边缘检测

    解释转载 https://blog.csdn.net/qq_29238153/article/details/80822267

    索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值。在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量

    Sobel卷积因子为:

    该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以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) + 2f(x,y-1) + f(x+1,y-1)]-[f(x-1, y+1) + 2*f(x,y+1)+f(x+1,y+1)]

    其中f(a,b), 表示图像(a,b)点的灰度值;

    图像的每一个像素的横向及纵向灰度值通过以下公式结合,来计算该点灰度的大小:

    通常,为了提高效率 使用不开平方的近似值:

    如果梯度G大于某一阀值 则认为该点(x,y)为边缘点。

    然后可用以下公式计算梯度方向:

    Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。
      

    附带知识:

    普利维特算子(Prewitt operate): 

    除sobel边缘检测外 还有Prewitt算子, 它的卷积因子如下:

    其他计算 和sobel差不多;

    Prewitt算子利用像素点上下、左右邻点灰度差,在边缘处达到极值检测边缘。对噪声具有平滑作用,定位精度不够高。

    罗伯茨交叉边缘检测(Roberts Cross operator)

    卷积因子如下:

    灰度公式为:

    近似公式为:

    具体计算如下:

    G(x,y)=abs(f(x,y)-f(x+1,y+1))+abs(f(x,y+1)-f(x+1,y))

    灰度方向 计算公式为:

    Roberts算子采用对角线方向相邻两像素之差近似梯度幅值检测边缘。检测水平和垂直边缘的效果好于斜向边缘,定位精度高,对噪声敏感

  • 相关阅读:
    单例模式
    Curator Zookeeper分布式锁
    LruCache算法原理及实现
    lombok 简化java代码注解
    Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法
    解决mysql Table ‘xxx’ is marked as crashed and should be repaired的问题。
    Redis 3.0 Cluster集群配置
    分布式锁的三种实现方式
    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
    How to Use Convolutional Neural Networks for Time Series Classification
  • 原文地址:https://www.cnblogs.com/wanglinwensi/p/12850900.html
Copyright © 2020-2023  润新知