边缘检测是检测图像中的一些像素点,它们周围的像素点的灰度发生了急剧的变化,我们认为在这过程中,图像中的物体不同导致了这一变化,因此可以将这些像素点作为一个集合,可以用来标注图像中不同物体的边界。边缘区域的灰度剖面可以看作是一个阶跃,即图像的灰度在一个很小的区域内变化到另一个相差十分明显的区域。边缘是图像中的重要的结构性特征,边缘往往存在于目标和背景之间,不同的区域之间,因此它可以作为图像分割的重要依据。在边缘检测中,它提取的是图像中不连续部分的特征,将闭合的边缘提取出来便可以作为一个区域。与区域划分相比,边缘检测不需要逐个的对像素进行比较,比较适合大图像的处理.

如图

边缘检测

边缘其实就是图像上灰度级变化很快的点的集合。这些点往往梯度很大。图像的梯度可以用一阶导数和二阶偏导数来求解。但是图像以矩阵的形式存储的,不能像数学理论中对直线或者曲线求导一样,对一幅图像的求导相当于对一个平面、曲面求导。对图像的操作,我们采用模板对原图像进行卷积运算,从而达到我们想要的效果。而获取一幅图像的梯度就转化为:模板(Roberts、Prewitt、Sobel、Lapacian算子)对原图像进行卷积。

使用一阶导的算子有,prewitt,sobel和canny;使用二阶导的有lapacian

(1)一阶导算子:

1、prewitt

通常用 f '(x) = f(x + 1) - f(x - 1) 近似计算一阶差分。可以提出系数:[-1, 0, 1],这个就是模板。在二维情况下是:

-1, 0, 1

-1, 0, 1

-1, 0, 1

这个就是prewitt算子。即

f(x-1, y-1), f(x, y-1), f(x+1, y-1)

f(x-1, y),    f(x, y),    f(x+1, y)

f(x-1, y+1),  f(x, y+1),  f(x+1, y+1)

2、sobel

中心点 f(x, y) 是重点考虑的,它的权重应该多一些,所以改进成下面这样的

-1, 0, 1

-2, 0, 2

-1, 0, 1

这就是 Sobel 边缘检测算子,偏 x 方向的。同理可得偏y方向上的。

-1, -2, -1

0,  0,  0

1,  2,  1

分别计算偏 x 方向的 Gx,偏 y 方向的 Gy,求绝对值,压缩到 [0, 255]区间,即 G(x, y) = Gx + Gy 就是 sobel 边缘检测后的图像了。因此sobel算子是有两个方向的。

3、canny

canny算子的计算步骤如下:

1.高斯滤波器平滑图像。去除噪声

2.一阶差分偏导计算梯度值和方向。通过sobel算子计算的。

3.对梯度值不是极大值的地方进行抑制。把不是极值的点,全部置0,去掉了大部分弱的边缘。所以图像边缘会变细。

4.用双阈值连接图上的联通点。设置双阈值 t1, t2, 是这样的,t1 <= t2 大于 t2 的点肯定是边缘;小于 t1 的点肯定不是边缘;在 t1, t2 之间的点,通过已确定的边缘点,发起8领域方向的搜索(广搜),图中可达的是边缘,不可达的点不是边缘。最后得出 canny 边缘图。

(2)二阶导算子

1、lapacian

一阶差分:f '(x) = f(x) - f(x - 1)

二阶差分:f '(x) = (f(x + 1) - f(x)) - (f(x) - f(x - 1))

化简后:f '(x) = f(x - 1) - 2 f(x)) + f(x + 1)

提取前面的系数:[1, -2, 1]

二维的情况下,同理可得f '(x, y) = -4 f(x, y) + f(x-1, y) + f(x+1, y) + f(x, y-1) + f(x, y+1)提取各个系数,写成模板的形式

0, 1, 0

1, -4, 1

0,  1, 0

考虑两个斜对角的情况

1,  1, 1

1, -8, 1

1,  1, 1

与原图卷积运算即可求出边缘。

那么这些算子有什么区别呢:

下面三张图分别是 sobel,canny,laplace 结果图。

sobel算子

canny算子

laplace算子处理效果

sobel 产生的边缘有强弱,抗噪性好,计算量小

laplace 对边缘敏感,可能有些是噪声的边缘,也被算进来了

canny 产生的边缘很细,可能就一个像素那么细,没有强弱之分。计算量大,但是准确

部分参考自:https://www.jianshu.com/p/2334bee37de5

python sobel算子_图像边缘检测:Canny算子、Prewitt算子和sobel算子相关推荐

  1. 边缘提取——Prewitt算子和Sobel算子

    目录 Prewitt算子和Sobel算子 理论介绍 编码实现(Python) debug过程 Prewitt算子和Sobel算子 理论介绍 Prewitt算子和Sobel算子也是基于一阶导数的算子. ...

  2. java边缘检测算子代码_图像边缘检测(Canny 算法)的Java实现

    快速排序 一. 算法描述 快速排序是对冒泡排序的一种改进.在冒泡排序中,记录每次都是与相邻位置上的数据作比较,因此每次只能移动一个位置.而在快速排序中,记录的比较和移动都是从两端向中间进行的. 其主要 ...

  3. 图像处理——Canny算子 图像边缘检测:Canny算子、Prewitt算子和sobel算子

    https://blog.csdn.net/fengye2two/article/details/79190759 https://www.jianshu.com/p/bed4ffe996a1

  4. [Python图像处理] 十八.图像锐化与边缘检测之Scharr算子、Canny算子和LOG算子

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  5. python计算机视觉2:图像边缘检测

    我是一名初学者,如果你发现文中有错误,请留言告诉我,谢谢 如果需要检测到图像里面的边缘,首先我们需要知道边缘处具有什么特征. 对于一幅灰度图像来说,边缘两边的灰度值肯定不相同,这样我们才能分辨出哪里是 ...

  6. 图像边缘检测-Canny,Sobel等算子

    一.前言 首先我们先来简单了解一下什么是数字图像处理(Digital Image Processing),先看一下数字图像主要的两个应用领域: 1.改善图示信息以便人们解释: 2.为存储.传输和表示而 ...

  7. 图像的常规边缘检测(梯度算子、Roberts算子和Sobel算子)之c++实现(qt + 不调包)

    1.基本原理 边缘检测一般是利用微分等方法,通过对灰度跃变的分析寻找图像上区域边缘的技术.今天的猪脚是梯度算子和Roberts算子. 1.梯度算子是怎么来的? 答:图像是一个二维集合,在(x, y)处 ...

  8. python高斯滤波和降噪_python添加高斯噪声和椒盐噪声,实现中值滤波和均值滤波,实现Roberts算子和Sobel算子...

    写在前面 HIT大三上学期视听觉信号处理课程中视觉部分的实验一,经过和学长们实验的对比发现每一级实验要求都不一样,因此这里标明了是2019年秋季学期的视觉实验一. 由于时间紧张,代码没有进行任何优化, ...

  9. 图像梯度——Sobel算子和Laplacian算子

    一.Sobel算子 1.定义 Sobel算子是一种离散的微分算子,结合了高斯平滑和微分求导运算,利用局部拆分寻找边缘,计算所得的是一个梯度的近似值. Sobel算子=|左-右|/|下-上| Schar ...

  10. 【OpenCV图像处理入门学习教程四】基于LoG算子的图像边缘检测

    OpenCV图像处理入门学习教程系列,上一篇第三篇:基于SIFT特征和SURF特征的微旋转图像拼接与融合生成全景图像的比较 LoG边缘检测算子 LoG边缘检测算子是David Courtnay Mar ...

最新文章

  1. 怎么在alert里加图片_往暖气里加防冻液,女子被烧伤
  2. Java创建线程的3种方式
  3. python 0o10_Python 从业十年的程序员,写的万字经验分享
  4. 白居易--《祭李侍郎文》
  5. android 活动切换动画,android – 在使用ChangeImageTransform共享元素转换的两个活动之间动画化ImageView...
  6. eclipse同步svn时如何过滤target等文件
  7. 天津理工大学计算机考研录取名单,2020年天津理工大学硕士研究生拟录取名单公示...
  8. MySQL索引实现、MySQL索引原理、索引下推、索引覆盖、索引失效
  9. java代码上传到私服,maven上传源码到私服(示例代码)
  10. 入职直接给事业编, 90万补贴+50万科启,重庆高校
  11. 2021全国大学生电子设计竞赛--电源--三相逆变(硬件)
  12. hellow aiowo
  13. 计算机科学与技术路线,技术路线写法
  14. [图论] 平面图 平面性的判定
  15. 软考英文缩写_计算机软件常见英文缩写及对应全称
  16. 77go论坛性能测试
  17. 怎么把信息秒回做到极致?IMO班聊也是拼了
  18. 【计算方法数值分析】复化梯形公式、复化辛普森公式和龙贝格数值积分
  19. ArcMap通过服务定义发布服务
  20. 同事背后说坏话怎么办?为人再老实,也要做这3件事,吃亏不是福

热门文章

  1. 机器学习之多种算法优缺点总结及优化方法
  2. 人工神经网络算法有哪些,人工神经网络算法优点
  3. java技术管理的简历_基于javaweb个人简历生成及管理系统.doc
  4. JAVA将多个Pdf合并成一个Pdf
  5. 计算机视觉教程(第2版)1-8章期末复习
  6. iOS一代码搞定定位
  7. HTML5全套视频教程合集分享-2018年千锋最新录制
  8. Qt信号与槽机制原理
  9. 微信小程序 【给图片加上删除图标】
  10. 导频矢量推导与离散信号傅里叶变换