cv领域之边缘检测技术学习

一、边缘检测简单介绍

边缘检测是图像分割中最常见的操作之一,一般提到边缘可能有三个概念:

  1. 边缘检测:定位边缘像素的过程
  2. 边缘增强:增强边缘和背景之间的对比度
  3. 边缘跟踪:沿着边缘进行跟踪,将边缘像素采集到一个列表中。链码算法是边缘跟踪的一个算法

图像分割的主要目的是识别图像中的区域,一般首先需要边缘检测得到物体区域,然后在后续的处理中判断物体属于什么类型。

二、理论基础

要定义一个边缘检测算法首先需要定义什么是边缘

  1. 边缘的定义:
    边缘有很多种定义,每种都有适用于的特定场景。最理想的是理想阶梯型边缘。
    理想阶梯型边缘:这种边缘是边缘两侧的像素的灰度级有着阶梯状的区别,但是这种情况是不可能存在的。原因有二,首先数据化采样会使得边缘锯齿话,因为图像的采样不可能使得整个边缘恰好在像素的边界上,因此实际中灰度的变化会涉及到很多像素。第二,存在的噪声会随机干扰每个像素的灰度级。
B= A+N  其中B为实际图像,A为理想图像,N为噪声影响

除去最理想的状态,我们希望,边缘由灰阶的等高线定义,越过等高线时,灰度会迅速变换,沿着等高线,灰阶的变换会比较轻柔。边缘具有一个可以测量的方向。

  1. 噪声:
    边缘的噪声有两种类型,一种是和像素无关的,一种是和像素相关的。和像素无关的噪声比较常见,比如椒盐噪声、随机白噪声等等;和像素相关的比较少见,而且也比较难处理。
    噪声的本质是随机的,因此无法在一个有噪声的图像中准确的测量噪声,噪声可能没有特定的统计学属性,但是我们可以测试一下,如果噪声具有特定的统计特性,那么有些图像的噪声是可以估计的。比如高斯噪声,可以通过计算一张图的视觉恒定区域的均值、方差,大致得到高斯噪声的均值方差。
    噪声和边缘像素一样都具有和周围像素灰度区别明显的特点。但是边缘像素可以互相连接构成等高线,而噪声没有这样的特性。这是两者的区别,可以通过这个区别两者。

三、三种定位边缘的算子:

边缘是由灰阶值的变换定义的,因此对这种变换敏感的算子就可以用作边缘检测器。常见的有三种算子

  1. 导数算子:导数的意义就是表示函数值的变换率,图像上的灰阶值变换在边缘附近很大,在常量区比较小
  2. 类似于模板匹配的方案:这种就是我们熟悉卷积核啦~这种方式的思想是将一个小的离散的模板作为边缘的模型,然后作为卷积掩膜依次和图像上每个像素相乘。比如sobel算子和拉普拉斯算子
  3. 使用边缘的数学模型:使用了边缘的数学模型,并且考虑了噪声模型的。比如LoG,Canny。

下面依次简单介绍:

3.1 导数算子

基于导数的算子有一阶导数和二阶导数,其中二阶导数对边缘的识别效果要更优秀,因为他对像素灰度的变换更加敏感。

图像可以看作是二方向的函数A(x,y),因为图像是离散的,所以可以使用差分来计算一个像素点的导数。

image.jpeg

边缘响应也称为边缘强度,是两个梯度向量之和的长度,反应的边缘变化的强度。

3.2 基于模板的边缘检测

常见的边缘检测算子sobel算子,拉普拉斯算子等

3.2.1 sobel算子

比如sobel算子,sobel算子长这样

image.jpeg
image.jpeg
image.jpeg
image.jpeg

sy是类似的。sobel算子可以理解为对2*2区域的像素应用一阶梯度计算公式,然后计算结果的平均值。

sobel算子对于每个像素的结果得到一个实数,考虑到x轴和y轴两个方向,可以用两者的平方之和的开方得到一个响应值,如果响应值大于某个阈值,则认为是边缘像素点。一般在实际计算时,因为开平方运算计算消耗大,往往会使用其他的替代方案得到响应值。

注意:

从上面这个理解可以看出,对于不同类型的图片需要设置不同的阈值,阈值是需要根据实际情况调节的。

还需要注意如果图像存在噪声,需要先进性噪声去除,比如简单的高斯滤波、中值滤波等等。

3.2.2 kirsch算子

它采用8个模板对图像上的每一个像素点进行卷积求导,这8个模板代表8个方向,对图像上的8个特定边缘方向作出最大响应,运算中取最大值作为图像的边缘输出。

image.jpeg

3.3 边缘模型

3.3.1 高斯拉普拉斯算子LOG

这种模型和2.2的模板其实有点相像,都是采用某种策略生成卷积掩码,然后和原图做卷积。

Laplacian(拉普拉斯)是对于一张图像的二阶空间导数上各向同性的测量。一张图像的Laplacian会显示出intensity(亮度) 剧烈变化的区域,所以经常用作边缘检测。

因为卷积核是对图像二阶求导的一种近似,所以它对于噪声来说更加敏感。为了克服这一点,通常在进行laplacian之前,先进行Gaussian Smooth(高斯平滑)。所以L(GI), 这里I 表示的是图像,G表示的是Gaussian Smoothing Filter。

因为上面两个操作的顺序是没有关系的,所以可以结合在一起。

image.jpeg

1. 设置不同的高斯滤波器的方差可以得到不同的LOG算子,

2. 通过算子和原始图像进行卷积可以得到不同的图像,

3. 在这些图像上寻找0交叉点。所谓0交叉点就是卷积之后值为0的点。我们知道一阶导数的极值点对应二阶导数的0交叉点。这些点表示信号的强度趋势开始变化,也就是我们需要的边缘像素点。

4. 结合不同尺度的图像或者不同的高斯方差得到的边缘像素点,进行合并操作就可以得到边缘像素

https://blog.csdn.net/lanling1996/article/details/112431607

3.3.2 Canny算子

Canny算子与Marr(LoG)边缘检测方法类似(Marr大爷号称计算机视觉之父),也属于是先平滑后求导数的方法。

John Canny研究了最优边缘检测方法所需的特性,给出了评价边缘检测性能优劣的三个指标:

1 好的信噪比,即将非边缘点判定为边缘点的概率要低,将边缘点判为非边缘点的概率要低;

2 高的定位性能,即检测出的边缘点要尽可能在实际边缘的中心;

3 对单一边缘仅有唯一响应,即单个边缘产生多个响应的概率要低,并且虚假响应边缘应该得到最大抑制。

Canny算子求边缘点具体算法步骤如下:

1. 用高斯滤波器平滑图像.

2. 用一阶偏导有限差分计算梯度幅值和方向

3. 对梯度幅值进行非极大值抑制

4. 用双阈值算法检测和连接边缘.

简单的介绍上面的过程:

1. 用高斯滤波器平滑图像:在真实的图像中,一般会有噪声,噪声会影响梯度的计算,所以步骤1上来先滤波。

2. 用一阶偏导有限差分计算梯度幅值和方向:

何为边缘?图象局部区域亮度变化显著的部分,对于灰度图像来说,也就是灰度值有一个明显变化,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。导数就是表征变化率的,但是数字图像都是离散的,也就是导数肯定会用差分来代替。可选用的算子有soble算子、Prewitt算子、Roberts模板等等;

参考文章:

Canny边缘检测算法原理及C语言实现详解https://www.cnblogs.com/love6tao/p/5152020.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容