Matlab图像处理(五)——图像边缘提取

上一讲小白为小伙伴们带来了如何使用自编函数和自带函数对图像进行滤波,去除图像的噪声。这次小白为大家带来滤波的新用处——边缘提取。

什么是图像边缘

所谓图像边缘(Edlge)是指图像局部特性的不连续性,例如,灰度级的突变,颜色的突变,纹理结构的突变等。边缘广泛存在于目标与目标、物体与背景、区域与区域(含不同色彩)之间,它是图像分割所依赖的重要特征。

小白今天主要介绍几种典型的图像灰度值突变的边缘检测方法,其原理也适用用于其他特性突变的边缘检测。图像的边缘通常与图像灰度的一阶导数的不连续性有关。图像灰度的不连续性可分为两类:阶跃不连续,即图像灰度在不连续处的两边的像素灰度有明显的差异。线条不连续,即图像灰度突然从一个值变化到另一个值,保持一个较小的行程又返回到原来的值。但是在实际中,阶跃和线条边缘图像是较少见的,由于空间分辨率(尺度空间)、图像传感器等原因会使阶跃边缘变成斜坡形边缘,线条边缘变成房顶形边缘。它们的灰度变化不是瞬间的而是跨越一定距离的。几种边缘类型,可以通过下面的图片有个更清晰的认识。

Sobel算子

在前面的关于图像滤波的讲解中,小白为大家介绍了sobel算子模板,但是没有讲解其具体作用。这次的讲解中,小白将为大家讲解什么是sobel算子。

sobel算子是一阶的梯度算子,也就是对信号求取一阶导数,对噪声具有平滑作用,提供较为精确的边缘方向信息,但是边缘定位精度不够高;但是该种方法比较简单,容易实现,也比较容易理解。

对一个连续函数求导是一件比较容易的事情,但是图像中的数据都是数字化之后的数据,是离散的,因此对于求导就需要使用差分方式:前面的像素灰度值减去后面像素的灰度值,并将结果大于一定阈值的设为边缘,否则就不是边缘。我们用数学公式表示就是:I(x,y)-I(x-n,y)。公式给出的是两个像素在同一行中,两个像素也可以在同一列中,而且方向也可以更改。

根据之前的模板来看的话,只有一个维度的求导可以用如下的模板表示:

可以用上面两个模板分别对原图像求取横着和竖着边缘,之后对两者求并集,便是图像整体的边缘。但是细心的小伙伴肯定会发现,模板之后两个元素,以哪个元素作为模板的中心呢?为了解决这个问题,研究者将其进行了扩展,变为以下的模板:

模板长度变为奇数便可以解决模板没有“中心”的问题。后续经过各种演化,最终变为前面几讲中提到的模板的样子。小伙伴在使用的过程中可以直接使用其模板就可以,而且Matlab也是带有sobel边缘提取的函数,不需要小伙伴自己编写复杂的程序。

常用的sobel边缘提取模板

Roberts算子

其实很多种算子都借鉴了sobel方法的思想,Roberts算子检测方法对具有陡峭的低噪声的图像处理效果较好,但是利用roberts算子提取边缘的结果是边缘比较粗,因此边缘的定位不是很准确。我们直接给出Roberts算子的模板:

通过模板我们也能看出来,该算法是采用检测斜着方向的梯度变化来判定图像的边缘。

Canny算子

(0)

相关推荐

  • (5条消息) 复杂户型图处理(基于边缘特征)

    需求突然转换到,识别有背景的户型图: 具体效果参考空间大师,首先提出墙体,然后识别门窗.家具. 空间大师对实现思路几乎没有帮助,绝望之际找到一篇论文,看结果还不错,于是我们就开始根据论文一步步实现. ...

  • 图像特征提取(颜色,纹理,形状)

    来源:新机器视觉 来自:小白学视觉公众号 编辑:王萌(深度学习冲鸭公众号) 著作权归作者所有,本文仅作学术分享,若侵权,请联系后台删文处理 后台回复西瓜手推获得西瓜书手推笔记 后台回复CV入坑必备获得 ...

  • 图像处理知多少?准大厂算法工程师30+场秋招后总结的面经问题详解

    作者丨灯会 来源丨极市平台 编辑丨极市平台 极市导读 本篇主要包含了图像滤波.边缘检测相关常考内容等相关面试经验. >>加入极市CV技术交流群,走在计算机视觉的最前沿 系列文章: 深度学习 ...

  • 在为LabVIEW中如何实现自动对焦而发愁?龙哥教你轻松搞定

    有很多小伙伴在问:LabVIEW中有没有自动对焦的函数,labview视觉中摄像头对焦能否实现自动调节? 如何评价一副图像的清晰度?可以通过以下算法定义并计算: Tenengrad梯度方法利用Sobe ...

  • 使用Matlab图像处理(三)——图像滤波原理

    今天小白为大家带来图像滤波的基础原理. 01 - 什么是图像滤波? 小白用一句更简短的话来说:滤波就是去除图像中的噪声. 由于成像系统.传输介质和记录设备等的不完善,数字图像在其形成.传输记录过程中往 ...

  • [Python图像处理] 八.图像腐蚀与图像膨胀

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

  • Matlab图像处理(四)——常用滤波的实现

    前面一讲我们已经讲解了滤波的原理和公式,为了让小伙伴更加熟悉基本原理,本将中我们采用了自编写滤波函数和Matlab自带的函数两种方式来实现中值滤波.均值滤波和高斯滤波.小伙伴可以通过点击文末" ...

  • 6、Halcon图像边缘提取和轮廓识别

    目录 1.图像边缘提取原理 2.边缘提取算子介绍 3.图像的亚像素边缘提取 4.亚像素轮廓的特征分析 5.xld的分割及直线拟合 6.圆及椭圆的拟合 7.中心线的提取 1.图像边缘提取原理 网上搜索图 ...

  • Matlab图像处理常用算法源码

    视觉/图像重磅干货,第一时间送达 新机器视觉 最前沿的机器视觉与计算机视觉技术 206篇原创内容 公众号 来源 | CSDN 1.图像反转 I=imread('xian.bmp'); J=double ...

  • Matlab 图像处理基础

    一.图像处理的基本操作 1.从图形文件读取图像 pic = imread('C:\Users\Good\Pictures\m.jpg'); 通过matlab自带的imread读入图像,函数内为图像的路 ...

  • MATLAB的图像实验

    作者:大榕树下  来源:转载https://benzhiwei.blog.163.com/blog/static/3814262420084510385546/  发布时间:2008-5-14 21: ...

  • 图像中弯曲的纸张怎么通过图像处理纠正成平展的纸张?

    找到上下两条曲线,根据曲线曲率拉伸,插值.大功告成

  • Python处理图像五个有趣场景,很实用!

    好奇心Log 6天前 以下文章来源于Python大数据分析 ,作者有派君 Python大数据分析分享python编程.可视化设计.大数据分析.机器学习等技术以及数据分析案例,包括但不限于pandas. ...